1.数据库分页: /** * @param pageItems:一页显示条数 currentPage:当前第几页 * @autor godelegant */ public List findAll(int pageItems,int currentPage){ StringBuffer sqlStr = new StringBuffer("select * from Product limit ?,?"); ... ... int startIndex = (currentPage-1)*pageItems;);//(currentPage-1)*pageItems能过当前页和页面记录数得到应该从哪条开始取 int endIndex = startIndex+pageItems; db.getPstmt().setInt(1,startIndex); db.getPstmt().setInt(2,endIndex); ResultSet rs = db.getPstmt().executQuery();//假设你已经得到了数据库连接 //以上为MYSQL的JDBC分页,下面是ORALCE的,差别只在于SQL,所以你换一下SQL就OK: StringBuffer sqlStr = new StringBuffer("select *,rownum rn from (select * from Product) where rn <=? and rownum >=?"); } 求总页数的方法很简单,查出所有记录数,除一页显示数。就可以得到 以上是JDBC的,如果使用hibernate等,数据库分页将会变得很简单,只需要设置两个参数,就是从哪取和取多少。 2.代码分页 思路是将数据库中的所有记录都取出来,然后再分页。 /** * @para items:数据库中的所有记录,你可以使用另一个方法得到,如何查询得到我就不用说了吧 * @autor godelegant */ public List findAll(List items,int pageItems,int currentPage){ int startIndex = (currentPage-1)*pageItems;//从哪里开始取 int offset = items.size()-startIndex;//还有多少没有取过 int pageCount = offset>pageItems?pageItems:offset;//如果没有取过的大于需要显示的数,则实现显示数pageCount=pageItems,反之然; List<Product> pageList = new ArrayList(); for(int i=startIndex,i<startIndex+pageCount,i++){ pageList.add(items.get(i)); } return pageList; }
java中分页
最新推荐文章于 2021-06-04 14:15:49 发布