用jsp和servlet实现分页方法

来源:互联网 发布:电脑加速软件 编辑:程序博客网 时间:2024/06/05 08:53
1、建一个pageBean的分页类:
public class PageBean {public int pageSize = 5; //每页数据条数private int currentPage ; //当前页数private int totalSize; //总记录数private int totalPage; //总页数private List list; //当页结果集public int getCurrentPage() {return currentPage;}public void setCurrentPage(int currentPage) {this.currentPage = currentPage;}public int getTotalSize() {return totalSize;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}public void setTotalSize(int totalSize) {this.totalSize = totalSize;if(totalSize%pageSize==0){totalPage = totalSize/pageSize;}else{totalPage = totalSize/pageSize+1;}}public int getTotalPage() {return totalPage;}public void setTotalPage(int totalPage) {this.totalPage = totalPage;}public List getList() {return list;}public void setList(List list) {this.list = list;}public PageBean() {super();currentPage = 1;}}

2、在dao层中写入以下方法:
public PageBean findByPageBean(PageBean pageBean,String sql){
Connection con = Jdbconnection.getConnection();PreparedStatement pstmt = null;ResultSet rs =null;List<"实体类"> list = new ArrayList<"实体类">();
String sql1 = "SELECT * FROM ( SELECT ROWNUM RN , A.* FROM ( "+sql+" ) A WHERE ROWNUM<=? ) WHERE RN >=?";try {pstmt= con.prepareStatement(sql1);  pstmt.setInt(1, pageBean.getCurrentPage()*pageBean.pageSize);  pstmt.setInt(2, (pageBean.getCurrentPage()-1)*pageBean.pageSize+1);
rs = pstmt.executeQuery();  while(rs.next()){//在这里从数据库提取数据,实例化实体类并添加到list中
} } catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}Jdbconnection.closeSource(con, pstmt,rs);pageBean.setList(lmList);  return pageBean;
}

3、在servlet调用上面函数并从jsp中传递参数。
原创粉丝点击