天天看點

java分頁_Java實作分頁代碼

在項目中,分頁是一個項目中必不可少的,它可以防止我們從資料庫中進行大量資料查詢時速度變慢,提高我們的查詢效率。

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();

}

}

這樣分頁效果就實作了,我們要實作分頁效果,隻要傳入相應的參數和相應的資料庫執行語句即可實作,希望大家能靈活運用。

以上就是本文的全部内容,希望對大家的學習有所幫助,也希望大家多多支援腳本之家。

繼續閱讀