欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java 关于分页的实现

发布时间:2025/7/14 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java 关于分页的实现 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

   关于java实现分页

转自:http://www.cnblogs.com/slliang/archive/2012/08/22/2651053.html

  1.分页工具类,封装分页信息

package com.student.util; import java.util.List;import com.student.entity.Person;/*** 封装分页信息* @author Administrator** @param <Person>*/ public class PageModel<E> {//结果集private List<E> list;//查询记录数private int totalRecords;//第几页private int pageNo;//每页多少条记录private int pageSize;//总页数public int getTotalPages(){return (totalRecords + pageSize -1)/pageSize;}//首页public int getTopPage(){return 1;}//上一页public int getPreviousPage(){if(pageNo<=1){return 1;}return pageNo-1;}//下一页public int getNextPage(){if(pageNo>=getBottomPage()){return getBottomPage();}return pageNo+1;}//尾页public int getBottomPage(){return getTotalPages();}public List<E> getList() {return list;}public void setList(List<E> list) {this.list = list;}public int getTotalRecords() {return totalRecords;}public void setTotalRecords(int totalRecords) {this.totalRecords = totalRecords;}public int getPageNo() {return pageNo;}public void setPageNo(int pageNo) {this.pageNo = pageNo;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}}

  2.测试类

public class PageModelTest{public static void main(String[] args){int pageNo=1;int pageSize=10;findUserList(pageNo,pageSize);}/*** 分页查询* @param pageNo 第几页* @param pageSize 每页多少条记录* @return PageModel<E>*/public PageModel<Person> findUserList(int pageNo,int pageSize){PageModel<Person> pageModel = null;Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;//各数据库的分页语句不一样/*oracle实现分页,三层嵌套,这里10应该为pageNo*pageSize ,0为(pageNo-1)*pageSizeString sql="select column1,column2,column3,column4,column5 from (select rownum rn,column1,column2,column3,column4,column5 from(select column1,column2,column3,column4,column5 from table_name order by column desc)where rownum<=10)where rn>0";*///mysql实现分页String sql="select * from person order by id desc limit ?,? "; conn=DBUtil.getUtil().getConnection();try {ps=conn.prepareStatement(sql);ps.setInt(1, (pageNo-1) * pageSize);ps.setInt(2, pageSize);rs=ps.executeQuery();List<Person> personList = new ArrayList<Person>();while(rs.next()){Person person=new Person();person.setName(rs.getString("stu_name"));person.setPassword(rs.getString("stu_psw"));person.setNumber(rs.getString("stu_number"));person.setBirthday(rs.getDate("stu_birth"));person.setSex(rs.getInt("stu_sex"));person.setPolity(rs.getInt("stu_polity"));person.setBrief(rs.getString("stu_brief"));person.setType(rs.getInt("type"));person.setState(rs.getInt("state"));personList.add(person);}pageModel = new PageModel<Person>();pageModel.setList(personList);pageModel.setTotalRecords(getTotalRecords(conn));pageModel.setPageSize(pageSize);pageModel.setPageNo(pageNo);} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}finally{try {if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(conn!=null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}}return pageModel;}/*** 得到总记录数,私有方法,外部无法访问,本类中使用* @param conn* @return*/private int getTotalRecords(Connection conn){PreparedStatement ps = null;ResultSet rs = null;String sql="select count(*) from person"; conn=DBUtil.getUtil().getConnection();int count=0;try {ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){//此时根据sql语句查出的只有一列,否则不建议用int标识字段count = rs.getInt(1);}} catch (SQLException e) {e.printStackTrace();}finally{try {if(rs!=null){rs.close();}if(ps!=null){ps.close();}} catch (SQLException e) {// TODO Auto-generated catch block e.printStackTrace();}}return count;} }

 

转载于:https://www.cnblogs.com/xiaow/p/4573852.html

总结

以上是生活随笔为你收集整理的java 关于分页的实现的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。