分页操作
***在Javaweb项目中分页操作随处可见,现在就分页操作大致讲解。
首先,必须对数据库进行一系列操作,要把即将从数据库中获取的数据全部变成我想要的模样。如:select * from crm_lessontype limit "+pageSize*currectPage+","+pageSize+
其中,pageSize表示页面大小,currectPage表示当前页面。可以在数据库中对这两个参数进行赋值之后查看其变化(数据库的第一条是从0开始的)。
你会发现,它会显示出一部分的数据。现在开始从代码角度。`package com.taopan.util;
import java.util.List;
import com.taopan.entity.LessonType;
public class Page {
private int total;//数据总数
private int pageSize;//页面大小
private int pageNum;//页面数
private int currentPage;//当前页面
private List<?> pages;//当前页面的数据
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public List<?> getPages() {
return pages;
}
public void setPages(List<?> pages) {
this.pages = pages;
}
}
创建一个Page页面,用于从存放那五个字段都是在其中可以被使用的。
2、调用:
`String query_all="select * from crm_lessontype limit "+pageSize*currectPage+","+pageSize+"";
List<LessonType> lessonTypes=new ArrayList<LessonType>();
try {
ps=conn.prepareStatement(query_all);
rs=ps.executeQuery();
while(rs.next()){
LessonType lessonType=new LessonType();
lessonType .setId(rs.getInt("id"));
lessonType .setLessionName(rs.getString(2));
lessonType.setLessionCost(rs.getDouble(3));
lessonType.setTotalTime(rs.getInt(4));
lessonType.setRemark(rs.getString(5));
lessonTypes.add(lessonType);
数据库连接并且获取信息。
Page page =new Page();
String current=request.getParameter("currentPage");
String pageGoInputId=request.getParameter("pageGoInputId");
if(current!=null){
page.setCurrentPage(Integer.valueOf(current));
}else{
if(pageGoInputId!=null){
page.setCurrentPage(Integer.valueOf(pageGoInputId));
}else{
page.setCurrentPage(0);
}
}
page.setTotal(lessionDao.count());
page.setPageSize(4);
page.setPageNum(page.getTotal()%page.getPageSize()==0?page.getTotal()/page.getPageSize():page.getTotal()/page.getPageSize()+1);
if(page.getCurrentPage()>=page.getPageNum()||page.getCurrentPage()<0){
page.setCurrentPage(0);
}
List<LessonType>lessonTypes=lessionDao.querySomeLession(page.getPageSize(), page.getCurrentPage());
for(LessonType lessonType:lessonTypes){
System.out.println(lessonType.toString());
}
request.setAttribute("page", page);
request.setAttribute("list", lessonTypes);
request.getRequestDispatcher("manageCourse.jsp").forward(request, response);
对page进行赋值。
<span id="pageSpanId">当前${page.currentPage+1}页/共${page.pageNum}页,总条数${page.total}条<br>
<a href="LessionServlet?currentPage=0">首页</a>
<a href="LessionServlet?currentPage=${page.currentPage-1}">上一页</a>
<a href="LessionServlet?currentPage=${page.currentPage+1}">下一页</a>
<a href="LessionServlet?currentPage=${page.pageNum-1}">尾页</a>
</span>
在JSP中的使用。