1、定义分页模型:PageModel

  1. package com.common.page;
  2. import java.util.List;
  3. /**
  4. * 封装分页信息
  5. * @author Administrator
  6. *
  7. */
  8. public class PageModel<E> {
  9. //结果集
  10. private List<E> list;
  11. //查询记录数
  12. private int totalRecords;
  13. //每页多少条数据
  14. private int pageSize;
  15. //第几页
  16. private int pageNo;
  17. /**
  18. * 总页数
  19. * @return
  20. */
  21. public int getTotalPages() {
  22. return (totalRecords + pageSize - 1) / pageSize;
  23. }
  24. /**
  25. * 取得首页
  26. * @return
  27. */
  28. public int getTopPageNo() {
  29. return 1;
  30. }
  31. /**
  32. * 上一页
  33. * @return
  34. */
  35. public int getPreviousPageNo() {
  36. if (pageNo <= 1) {
  37. return 1;
  38. }
  39. return pageNo - 1;
  40. }
  41. /**
  42. * 下一页
  43. * @return
  44. */
  45. public int getNextPageNo() {
  46. if (pageNo >= getBottomPageNo()) {
  47. return getBottomPageNo();
  48. }
  49. return pageNo + 1;
  50. }
  51. /**
  52. * 取得尾页
  53. * @return
  54. */
  55. public int getBottomPageNo() {
  56. return getTotalPages();
  57. }
  58. public List<E> getList() {
  59. return list;
  60. }
  61. public void setList(List<E> list) {
  62. this.list = list;
  63. }
  64. public int getTotalRecords() {
  65. return totalRecords;
  66. }
  67. public void setTotalRecords(int totalRecords) {
  68. this.totalRecords = totalRecords;
  69. }
  70. public int getPageSize() {
  71. return pageSize;
  72. }
  73. public void setPageSize(int pageSize) {
  74. this.pageSize = pageSize;
  75. }
  76. public int getPageNo() {
  77. return pageNo;
  78. }
  79. public void setPageNo(int pageNo) {
  80. this.pageNo = pageNo;
  81. }
  82. }

2、分页测试:在MySQL中建立admin表,里面有字段id、name、password

3、简历Admin的实体bean类:

  1. package com.common.page;
  2. public class Admin {
  3. private int id;
  4. private String name;
  5. private String password;
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public String getPassword() {
  19. return password;
  20. }
  21. public void setPassword(String password) {
  22. this.password = password;
  23. }
  24. }

4、测试调用:

    1. package com.common.page;
    2. import java.sql.Connection;
    3. import java.sql.PreparedStatement;
    4. import java.sql.ResultSet;
    5. import java.sql.SQLException;
    6. import java.util.ArrayList;
    7. import java.util.List;
    8. import com.common.db.DbUtil;
    9. public class Client {
    10. public static PageModel findAdmins(int pageNo,int pageSize){
    11. Connection conn=DbUtil.getConnection();
    12. String sql="select * from admin limit ?,?";
    13. PageModel pageModel=null;
    14. PreparedStatement pstm=null;
    15. ResultSet rs=null;
    16. Admin admin=null;
    17. List<Admin> list=new ArrayList<Admin>();
    18. try {
    19. pstm=conn.prepareStatement(sql);
    20. pstm.setInt(1, (pageNo-1)*pageSize);
    21. pstm.setInt(2, pageNo*pageSize);
    22. rs=pstm.executeQuery();;
    23. while(rs.next()){
    24. admin=new Admin();
    25. admin.setId(rs.getInt("a_id"));
    26. admin.setName(rs.getString("a_name"));
    27. admin.setPassword(rs.getString("a_pwd"));
    28. list.add(admin);
    29. }
    30. ResultSet rs2=pstm.executeQuery("select count(*) from admin");
    31. int total=0;
    32. if(rs2.next()){
    33. total=rs2.getInt(1);
    34. }
    35. pageModel=new PageModel();
    36. pageModel.setPageNo(pageNo);
    37. pageModel.setPageSize(pageSize);
    38. pageModel.setTotalRecords(total);
    39. pageModel.setList(list);
    40. } catch (SQLException e) {
    41. e.printStackTrace();
    42. }finally{
    43. DbUtil.close(conn);
    44. DbUtil.close(pstm);
    45. DbUtil.close(rs);
    46. }
    47. return pageModel;
    48. }
    49. public static void main(String[] args) {
    50. PageModel pageModel=Client.findAdmins(2,4);
    51. List<Admin> list=pageModel.getList();
    52. for(Admin a:list){
    53. System.out.print("ID:"+a.getId()+",用户名:"+a.getName()+",密码:"+a.getPassword());
    54. System.out.println();
    55. }
    56. System.out.print("当前页:"+pageModel.getPageNo()+" ");
    57. System.out.print("共"+pageModel.getTotalPages()+"页  ");
    58. System.out.print("首页:"+pageModel.getTopPageNo()+" ");
    59. System.out.print("上一页:"+pageModel.getPreviousPageNo()+" ");
    60. System.out.print("下一页:"+pageModel.getNextPageNo()+" ");
    61. System.out.print("尾页:"+pageModel.getBottomPageNo()+" ");
    62. System.out.print("共"+pageModel.getTotalRecords()+"条记录");
    63. System.out.println();
    64. }
    65. }

Java 分页通用的更多相关文章

  1. java分页通用篇

    一.创建分页通用类 package com.dkyw.util; import java.util.List; public class Page<T> { private int tot ...

  2. JAVA 分页工具类及其使用

    Pager.java package pers.kangxu.datautils.common; import java.io.Serializable; import java.util.List; ...

  3. java - 分页类

    pager.java package com.jspnews.util; import java.io.Serializable; import java.util.List; /** * * < ...

  4. 数据你把它的金额-JAVA分页

    数据量你造吗-JAVA分页 原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),须要转载的,保留下! Thanks 学习的心态第一,解行要对应. 事实 ...

  5. 浅谈Java分页技术

    话不多言.我们要实现java分页技术,我们首先就需要定义四个变量,他们是: int  pageSize;//每页显示多少条记录 int pageNow;//希望现实第几页 int pageCount; ...

  6. 一个方便的java分页算法

    一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * ...

  7. [Java] 一种好的JAVA分页实现

    喃都不说了,贴代码,意思都在代码里面了 Page.java //分页类.定义分页字段信息,供前台页面使用 package com.core.common; import java.util.List; ...

  8. Java中都通用文件下载(ContentType、文件头、response、out四步骤)

    Java中都通用文件下载(ContentType.文件头.response.out四步骤) 新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian   我们就直接 ...

  9. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

随机推荐

  1. C#矩阵运算类库

    这个类库是本人参考许多相关资料之后做出的C#矩阵运算类库,因为C#的数值计算库相对比较少,所以希望这个类库能够给大家带来一些帮助. 源码github网址:https://github.com/Josh ...

  2. [POJ2761] Feed the dogs (Treap)

    题目链接:http://poj.org/problem?id=2761 题目大意:给你n个数,m次查询,m次查询分别是a,b,k,查询下表从a到b的第k小元素是哪个.这m个区间不会互相包含. Trea ...

  3. 01-C#入门(调试和错误处理)

    老实说,这一章没有什么要写的,很多都是实操性的东西. 调试方法 可以使用Debug.WriteLine().Trace.WriteLine()输入调试信息到窗体下的输出窗口,不过没怎么用过,比较有用的 ...

  4. NDK问题总结

    转自 这篇文章中很多东西!!:http://blog.chinaunix.net/uid-20746260-id-3910616.html 1. 创建JNI头文件 在工程目录下输入: javah -c ...

  5. Solaris 自动挂载

    修改文件:vim /etc/vfstab添加命令:/dev/dsk/c2t0d0p0:1             -               /media/PARTITION1    pcfs   ...

  6. jquery的blur之后,focus获取不到焦点的解决办法

    一:很多童鞋可能会遇到这种情况: jquery的blur之后,focus获取不到焦点. 二:使用场景: 用户填写信息的时候,若邮箱为空,则提示 请填写邮箱,并将光标置于填写邮箱的文本框里,方便用户的再 ...

  7. Java面向对象㈠ -- 封装

    Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...

  8. printf()输出

    printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息.正在编写步骤时经常会用到此函数.printf()函数的挪用式样为: printf("<式样化字符串&g ...

  9. 在linux中配置安装telnet服务

    Telnet 是一种流行的用于通过 Internet 登录到远程计算机的协议.Telnet 服务器软件包为远程登录主机提供了支持.要通过 Telnet 协议与另一台主机通讯,您可以使用名称或 Inte ...

  10. 1、win32创建窗口函数(windows程序内部运行机制)

    利用win32创建窗口函数,主要操作步骤为: 1.设计一个窗口类 2.注册窗口类 3.创建窗口 4.显示及窗口更新 5.消息循环 6.窗口过程函数   (1)设计一个窗口类 设计窗口类,这样的类型已经 ...