Java实现分页代码
在项目中,分页是一个项目中必不可少的,它可以防止我们从数据库中进行大量数据查询时速度变慢,提高我们的查询效率。
1、定义分页模型:PageModel
packagecom.common.page; importjava.util.List; /** *封装分页信息 *@authorAdministrator * */ publicclassPageModel{ //结果集 privateList list; //查询记录数 privateinttotalRecords; //每页多少条数据 privateintpageSize; //第几页 privateintpageNo; /** *总页数 *@return */ publicintgetTotalPages(){ return(totalRecords+pageSize-1)/pageSize; } /** *取得首页 *@return */ publicintgetTopPageNo(){ return1; } /** *上一页 *@return */ publicintgetPreviousPageNo(){ if(pageNo<=1){ return1; } returnpageNo-1; } /** *下一页 *@return */ publicintgetNextPageNo(){ if(pageNo>=getBottomPageNo()){ returngetBottomPageNo(); } returnpageNo+1; } /** *取得尾页 *@return */ publicintgetBottomPageNo(){ returngetTotalPages(); } publicList getList(){ returnlist; } publicvoidsetList(List list){ this.list=list; } publicintgetTotalRecords(){ returntotalRecords; } publicvoidsetTotalRecords(inttotalRecords){ this.totalRecords=totalRecords; } publicintgetPageSize(){ returnpageSize; } publicvoidsetPageSize(intpageSize){ this.pageSize=pageSize; } publicintgetPageNo(){ returnpageNo; } publicvoidsetPageNo(intpageNo){ this.pageNo=pageNo; } }
2、分页测试:在MySQL中建立admin表,里面有字段id、name、password
3、简历Admin的实体bean类:
packagecom.common.page; publicclassAdmin{ privateintid; privateStringname; privateStringpassword; publicintgetId(){ returnid; } publicvoidsetId(intid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } }
4、测试调用:
packagecom.common.page; importjava.sql.Connection; importjava.sql.PreparedStatement; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.util.ArrayList; importjava.util.List; importcom.common.db.DbUtil; publicclassClient{ publicstaticPageModelfindAdmins(intpageNo,intpageSize){ Connectionconn=DbUtil.getConnection(); Stringsql="select*fromadminlimit?,?"; PageModelpageModel=null; PreparedStatementpstm=null; ResultSetrs=null; Adminadmin=null; Listlist=newArrayList (); try{ pstm=conn.prepareStatement(sql); pstm.setInt(1,(pageNo-1)*pageSize); pstm.setInt(2,pageNo*pageSize); rs=pstm.executeQuery();; while(rs.next()){ admin=newAdmin(); admin.setId(rs.getInt("a_id")); admin.setName(rs.getString("a_name")); admin.setPassword(rs.getString("a_pwd")); list.add(admin); } ResultSetrs2=pstm.executeQuery("selectcount(*)fromadmin"); inttotal=0; if(rs2.next()){ total=rs2.getInt(1); } pageModel=newPageModel(); pageModel.setPageNo(pageNo); pageModel.setPageSize(pageSize); pageModel.setTotalRecords(total); pageModel.setList(list); }catch(SQLExceptione){ e.printStackTrace(); }finally{ DbUtil.close(conn); DbUtil.close(pstm); DbUtil.close(rs); } returnpageModel; } publicstaticvoidmain(String[]args){ PageModelpageModel=Client.findAdmins(2,4); List list=pageModel.getList(); for(Admina:list){ System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword()); System.out.println(); } System.out.print("当前页:"+pageModel.getPageNo()+""); System.out.print("共"+pageModel.getTotalPages()+"页"); System.out.print("首页:"+pageModel.getTopPageNo()+""); System.out.print("上一页:"+pageModel.getPreviousPageNo()+""); System.out.print("下一页:"+pageModel.getNextPageNo()+""); System.out.print("尾页:"+pageModel.getBottomPageNo()+""); System.out.print("共"+pageModel.getTotalRecords()+"条记录"); System.out.println(); } }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。