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);
Listlist=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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。