- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) >
- 如何使用Java實(shí)現分頁(yè)功能
這篇文章將為大家詳細講解有關(guān)如何使用Java實(shí)現分頁(yè)功能,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
在項目中,分頁(yè)是一個(gè)項目中必不可少的,它可以防止我們從數據庫中進(jìn)行大量數據查詢(xún)時(shí)速度變慢,提高我們的查詢(xún)效率。
1、定義分頁(yè)模型:PageModel
package com.common.page; import java.util.List; /** * 封裝分頁(yè)信息 * @author Administrator * */ public class PageModel<E> { //結果集 private List<E> list; //查詢(xún)記錄數 private int totalRecords; //每頁(yè)多少條數據 private int pageSize; //第幾頁(yè) private int pageNo; /** * 總頁(yè)數 * @return */ public int getTotalPages() { return (totalRecords + pageSize - 1) / pageSize; } /** * 取得首頁(yè) * @return */ public int getTopPageNo() { return 1; } /** * 上一頁(yè) * @return */ public int getPreviousPageNo() { if (pageNo <= 1) { return 1; } return pageNo - 1; } /** * 下一頁(yè) * @return */ public int getNextPageNo() { if (pageNo >= getBottomPageNo()) { return getBottomPageNo(); } return pageNo + 1; } /** * 取得尾頁(yè) * @return */ public int getBottomPageNo() { 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 getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } }
2、分頁(yè)測試:在中建立admin表,里面有字段id、name、password
3、簡(jiǎn)歷Admin的實(shí)體bean類(lèi):
package com.common.page; public class Admin { private int id; private String name; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
4、測試調用:
package com.common.page; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.common.db.DbUtil; public class Client { public static PageModel findAdmins(int pageNo,int pageSize){ Connection conn=DbUtil.getConnection(); String sql="select * from admin limit ?,?"; PageModel pageModel=null; PreparedStatement pstm=null; ResultSet rs=null; Admin admin=null; List<Admin> list=new ArrayList<Admin>(); try { pstm=conn.prepareStatement(sql); pstm.setInt(1, (pageNo-1)*pageSize); pstm.setInt(2, pageNo*pageSize); rs=pstm.executeQuery();; while(rs.next()){ admin=new Admin(); admin.setId(rs.getInt("a_id")); admin.setName(rs.getString("a_name")); admin.setPassword(rs.getString("a_pwd")); list.add(admin); } ResultSet rs2=pstm.executeQuery("select count(*) from admin"); int total=0; if(rs2.next()){ total=rs2.getInt(1); } pageModel=new PageModel(); pageModel.setPageNo(pageNo); pageModel.setPageSize(pageSize); pageModel.setTotalRecords(total); pageModel.setList(list); } catch (SQLException e) { e.printStackTrace(); }finally{ DbUtil.close(conn); DbUtil.close(pstm); DbUtil.close(rs); } return pageModel; } public static void main(String[] args) { PageModel pageModel=Client.findAdmins(2,4); List<Admin> list=pageModel.getList(); for(Admin a:list){ System.out.print("ID:"+a.getId()+",用戶(hù)名:"+a.getName()+",密碼:"+a.getPassword()); System.out.println(); } System.out.print("當前頁(yè):"+pageModel.getPageNo()+" "); System.out.print("共"+pageModel.getTotalPages()+"頁(yè) "); System.out.print("首頁(yè):"+pageModel.getTopPageNo()+" "); System.out.print("上一頁(yè):"+pageModel.getPreviousPageNo()+" "); System.out.print("下一頁(yè):"+pageModel.getNextPageNo()+" "); System.out.print("尾頁(yè):"+pageModel.getBottomPageNo()+" "); System.out.print("共"+pageModel.getTotalRecords()+"條記錄"); System.out.println(); } }
這樣分頁(yè)效果就實(shí)現了,我們要實(shí)現分頁(yè)效果,只要傳入相應的參數和相應的數據庫執行語(yǔ)句即可實(shí)現,希望大家能靈活運用。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站