在項目中,分頁是一個項目中必不可少的,它可以防止我們從資料庫中進行大量資料查詢時速度變慢,提高我們的查詢效率。
1、定義分頁模型:PageModel
package com.common.page;
import java.util.List;
public class PageModel {
//結果集
private List list;
//查詢記錄數
private int totalRecords;
//每頁多少條資料
private int pageSize;
//第幾頁
private int pageNo;
public int getTotalPages() {
return (totalRecords + pageSize - 1) / pageSize;
}
public int getTopPageNo() {
return 1;
}
public int getPreviousPageNo() {
if (pageNo <= 1) {
return 1;
}
return pageNo - 1;
}
public int getNextPageNo() {
if (pageNo >= getBottomPageNo()) {
return getBottomPageNo();
}
return pageNo + 1;
}
public int getBottomPageNo() {
return getTotalPages();
}
public List getList() {
return list;
}
public void setList(List 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、分頁測試:在MySQL中建立admin表,裡面有字段id、name、password
3、履歷Admin的實體bean類:
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 list=new ArrayList();
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 list=pageModel.getList();
for(Admin a: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();
}
}
這樣分頁效果就實作了,我們要實作分頁效果,隻要傳入相應的參數和相應的資料庫執行語句即可實作,希望大家能靈活運用。
以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援腳本之家。