定义分页模型:PageModel
查看源码打印?
001 package com.common.page;
002
003 import java.util.List;
004
005 /**
006 * 封装分页信息
007 * @author Administrator
008 *
009 */
010 public class PageModel<E> {
011
012 //结果集
013 private List<E> list;
014
015 //查询记录数
016 private int totalRecords;
017
018 //每页多少条数据
019 private int pageSize;
020
021 //第几页
022 private int pageNo;
023
024 /**
025 * 总页数
026 * @return
027 */
028 public int getTotalPages() {
029 return (totalRecords + pageSize - 1) / pageSize;
030 }
031
032 /**
033 * 取得首页
034 * @return
035 */
036 public int getTopPageNo() {
037 return 1;
038 }
039
040 /**
041 * 上一页
042 * @return
043 */
044 public int getPreviousPageNo() {
045 if (pageNo <= 1) {
046 return 1;
047 }
048 return pageNo - 1;
049 }
050
051 /**
052 * 下一页
053 * @return
054 */
055 public int getNextPageNo() {
056 if (pageNo >= getBottomPageNo()) {
057 return getBottomPageNo();
058 }
059 return pageNo + 1;
060 }
061
062 /**
063 * 取得尾页
064 * @return
065 */
066 public int getBottomPageNo() {
067 return getTotalPages();
068 }
069
070 public List<E> getList() {
071 return list;
072 }
073
074 public void setList(List<E> list) {
075 this.list = list;
076 }
077
078 public int getTotalRecords() {
079 return totalRecords;
080 }
081
082 public void setTotalRecords(int totalRecords) {
083 this.totalRecords = totalRecords;
084 }
085
086 public int getPageSize() {
087 return pageSize;
088 }
089
090 public void setPageSize(int pageSize) {
091 this.pageSize = pageSize;
092 }
093
094 public int getPageNo() {
095 return pageNo;
096 }
097
098 public void setPageNo(int pageNo) {
099 this.pageNo = pageNo;
100 }
101 }
2、分页测试:在MySQL中建立admin表,里面有字段id、name、password
3、简历Admin的实体bean类:
查看源码打印?
01 package com.common.page;
02
03 public class Admin {
04 private int id;
05 private String name;
06 private String password;
07 public int getId() {
08 return id;
09 }
10 public void setId(int id) {
11 this.id = id;
12 }
13 public String getName() {
14 return name;
15 }
16 public void setName(String name) {
17 this.name = name;
18 }
19 public String getPassword() {
20 return password;
21 }
22 public void setPassword(String password) {
23 this.password = password;
24 }
25
26 }
4、测试调用:
查看源码打印?
01 package com.common.page;
02
03 import java.sql.Connection;
04 import java.sql.PreparedStatement;
05 import java.sql.ResultSet;
06 import java.sql.SQLException;
07 import java.util.ArrayList;
08 import java.util.List;
09
10 import com.common.db.DbUtil;
11
12 public class Client {
13 public static PageModel findAdmins(int pageNo,int pageSize){
14 Connection conn=DbUtil.getConnection();
15 String sql="select * from admin limit ?,?";
16 PageModel pageModel=null;
17 PreparedStatement pstm=null;
18 ResultSet rs=null;
19 Admin admin=null;
20 List<Admin> list=new ArrayList<Admin>();
21 try {
22 pstm=conn.prepareStatement(sql);
23 pstm.setInt(1, (pageNo-1)*pageSize);
24 pstm.setInt(2, pageNo*pageSize);
25 rs=pstm.executeQuery();;
26 while(rs.next()){
27 admin=new Admin();
28 admin.setId(rs.getInt("a_id"));
29 admin.setName(rs.getString("a_name"));
30 admin.setPassword(rs.getString("a_pwd"));
31 list.add(admin);
32 }
33 ResultSet rs2=pstm.executeQuery("select count(*) from admin");
34 int total=0;
35 if(rs2.next()){
36 total=rs2.getInt(1);
37 }
38 pageModel=new PageModel();
39 pageModel.setPageNo(pageNo);
40 pageModel.setPageSize(pageSize);
41 pageModel.setTotalRecords(total);
42 pageModel.setList(list);
43 } catch (SQLException e) {
44 e.printStackTrace();
45 }finally{
46 DbUtil.close(conn);
47 DbUtil.close(pstm);
48 DbUtil.close(rs);
49 }
50 return pageModel;
51 }
52
53 public static void main(String[] args) {
54 PageModel pageModel=Client.findAdmins(2,4);
55 List<Admin> list=pageModel.getList();
56 for(Admin a:list){
57 System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword());
58 System.out.println();
59 }
60 System.out.print("当前页:"+pageModel.getPageNo()+" ");
61 System.out.print("共"+pageModel.getTotalPages()+"页 ");
62 System.out.print("首页:"+pageModel.getTopPageNo()+" ");
63 System.out.print("上一页:"+pageModel.getPreviousPageNo()+" ");
64 System.out.print("下一页:"+pageModel.getNextPageNo()+" ");
65 System.out.print("尾页:"+pageModel.getBottomPageNo()+" ");
66 System.out.print("共"+pageModel.getTotalRecords()+"条记录");
67 System.out.println();
68 }
69
70 }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。
查看源码打印?
001 package com.common.page;
002
003 import java.util.List;
004
005 /**
006 * 封装分页信息
007 * @author Administrator
008 *
009 */
010 public class PageModel<E> {
011
012 //结果集
013 private List<E> list;
014
015 //查询记录数
016 private int totalRecords;
017
018 //每页多少条数据
019 private int pageSize;
020
021 //第几页
022 private int pageNo;
023
024 /**
025 * 总页数
026 * @return
027 */
028 public int getTotalPages() {
029 return (totalRecords + pageSize - 1) / pageSize;
030 }
031
032 /**
033 * 取得首页
034 * @return
035 */
036 public int getTopPageNo() {
037 return 1;
038 }
039
040 /**
041 * 上一页
042 * @return
043 */
044 public int getPreviousPageNo() {
045 if (pageNo <= 1) {
046 return 1;
047 }
048 return pageNo - 1;
049 }
050
051 /**
052 * 下一页
053 * @return
054 */
055 public int getNextPageNo() {
056 if (pageNo >= getBottomPageNo()) {
057 return getBottomPageNo();
058 }
059 return pageNo + 1;
060 }
061
062 /**
063 * 取得尾页
064 * @return
065 */
066 public int getBottomPageNo() {
067 return getTotalPages();
068 }
069
070 public List<E> getList() {
071 return list;
072 }
073
074 public void setList(List<E> list) {
075 this.list = list;
076 }
077
078 public int getTotalRecords() {
079 return totalRecords;
080 }
081
082 public void setTotalRecords(int totalRecords) {
083 this.totalRecords = totalRecords;
084 }
085
086 public int getPageSize() {
087 return pageSize;
088 }
089
090 public void setPageSize(int pageSize) {
091 this.pageSize = pageSize;
092 }
093
094 public int getPageNo() {
095 return pageNo;
096 }
097
098 public void setPageNo(int pageNo) {
099 this.pageNo = pageNo;
100 }
101 }
2、分页测试:在MySQL中建立admin表,里面有字段id、name、password
3、简历Admin的实体bean类:
查看源码打印?
01 package com.common.page;
02
03 public class Admin {
04 private int id;
05 private String name;
06 private String password;
07 public int getId() {
08 return id;
09 }
10 public void setId(int id) {
11 this.id = id;
12 }
13 public String getName() {
14 return name;
15 }
16 public void setName(String name) {
17 this.name = name;
18 }
19 public String getPassword() {
20 return password;
21 }
22 public void setPassword(String password) {
23 this.password = password;
24 }
25
26 }
4、测试调用:
查看源码打印?
01 package com.common.page;
02
03 import java.sql.Connection;
04 import java.sql.PreparedStatement;
05 import java.sql.ResultSet;
06 import java.sql.SQLException;
07 import java.util.ArrayList;
08 import java.util.List;
09
10 import com.common.db.DbUtil;
11
12 public class Client {
13 public static PageModel findAdmins(int pageNo,int pageSize){
14 Connection conn=DbUtil.getConnection();
15 String sql="select * from admin limit ?,?";
16 PageModel pageModel=null;
17 PreparedStatement pstm=null;
18 ResultSet rs=null;
19 Admin admin=null;
20 List<Admin> list=new ArrayList<Admin>();
21 try {
22 pstm=conn.prepareStatement(sql);
23 pstm.setInt(1, (pageNo-1)*pageSize);
24 pstm.setInt(2, pageNo*pageSize);
25 rs=pstm.executeQuery();;
26 while(rs.next()){
27 admin=new Admin();
28 admin.setId(rs.getInt("a_id"));
29 admin.setName(rs.getString("a_name"));
30 admin.setPassword(rs.getString("a_pwd"));
31 list.add(admin);
32 }
33 ResultSet rs2=pstm.executeQuery("select count(*) from admin");
34 int total=0;
35 if(rs2.next()){
36 total=rs2.getInt(1);
37 }
38 pageModel=new PageModel();
39 pageModel.setPageNo(pageNo);
40 pageModel.setPageSize(pageSize);
41 pageModel.setTotalRecords(total);
42 pageModel.setList(list);
43 } catch (SQLException e) {
44 e.printStackTrace();
45 }finally{
46 DbUtil.close(conn);
47 DbUtil.close(pstm);
48 DbUtil.close(rs);
49 }
50 return pageModel;
51 }
52
53 public static void main(String[] args) {
54 PageModel pageModel=Client.findAdmins(2,4);
55 List<Admin> list=pageModel.getList();
56 for(Admin a:list){
57 System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword());
58 System.out.println();
59 }
60 System.out.print("当前页:"+pageModel.getPageNo()+" ");
61 System.out.print("共"+pageModel.getTotalPages()+"页 ");
62 System.out.print("首页:"+pageModel.getTopPageNo()+" ");
63 System.out.print("上一页:"+pageModel.getPreviousPageNo()+" ");
64 System.out.print("下一页:"+pageModel.getNextPageNo()+" ");
65 System.out.print("尾页:"+pageModel.getBottomPageNo()+" ");
66 System.out.print("共"+pageModel.getTotalRecords()+"条记录");
67 System.out.println();
68 }
69
70 }
这样分页效果就实现了,我们要实现分页效果,只要传入相应的参数和相应的数据库执行语句即可实现,希望大家能灵活运用。