关于java实现分页

转自:http://www.cnblogs.com/slliang/archive/2012/08/22/2651053.html

  1.分页工具类,封装分页信息

package com.student.util;
import java.util.List;import com.student.entity.Person;/*** 封装分页信息* @author Administrator** @param <Person>*/
public class PageModel<E> {//结果集private List<E> list;//查询记录数private int totalRecords;//第几页private int pageNo;//每页多少条记录private int pageSize;//总页数public int getTotalPages(){return (totalRecords + pageSize -1)/pageSize;}//首页public int getTopPage(){return 1;}//上一页public int getPreviousPage(){if(pageNo<=1){return 1;}return pageNo-1;}//下一页public int getNextPage(){if(pageNo>=getBottomPage()){return getBottomPage();}return pageNo+1;}//尾页public int getBottomPage(){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 getPageNo() {return pageNo;}public void setPageNo(int pageNo) {this.pageNo = pageNo;}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize = pageSize;}}

  2.测试类

public class PageModelTest{public static void main(String[] args){int pageNo=1;int pageSize=10;findUserList(pageNo,pageSize);}/*** 分页查询* @param pageNo 第几页* @param pageSize 每页多少条记录* @return PageModel<E>*/public PageModel<Person> findUserList(int pageNo,int pageSize){PageModel<Person> pageModel = null;Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;//各数据库的分页语句不一样/*oracle实现分页,三层嵌套,这里10应该为pageNo*pageSize ,0为(pageNo-1)*pageSizeString sql="select column1,column2,column3,column4,column5 from    (select rownum rn,column1,column2,column3,column4,column5 from(select column1,column2,column3,column4,column5 from table_name order by column desc)where rownum<=10)where rn>0";*///mysql实现分页String sql="select * from person order by id desc limit ?,? "; conn=DBUtil.getUtil().getConnection();try {ps=conn.prepareStatement(sql);ps.setInt(1, (pageNo-1) * pageSize);ps.setInt(2, pageSize);rs=ps.executeQuery();List<Person> personList  = new ArrayList<Person>();while(rs.next()){Person person=new Person();person.setName(rs.getString("stu_name"));person.setPassword(rs.getString("stu_psw"));person.setNumber(rs.getString("stu_number"));person.setBirthday(rs.getDate("stu_birth"));person.setSex(rs.getInt("stu_sex"));person.setPolity(rs.getInt("stu_polity"));person.setBrief(rs.getString("stu_brief"));person.setType(rs.getInt("type"));person.setState(rs.getInt("state"));personList.add(person);}pageModel = new PageModel<Person>();pageModel.setList(personList);pageModel.setTotalRecords(getTotalRecords(conn));pageModel.setPageSize(pageSize);pageModel.setPageNo(pageNo);} catch (SQLException e) {// TODO Auto-generated catch block
            e.printStackTrace();}finally{try {if(rs!=null){rs.close();}if(ps!=null){ps.close();}if(conn!=null){conn.close();}} catch (SQLException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}return pageModel;}/*** 得到总记录数,私有方法,外部无法访问,本类中使用* @param conn* @return*/private int getTotalRecords(Connection conn){PreparedStatement ps = null;ResultSet rs = null;String sql="select count(*) from person"; conn=DBUtil.getUtil().getConnection();int count=0;try {ps=conn.prepareStatement(sql);rs=ps.executeQuery();while(rs.next()){//此时根据sql语句查出的只有一列,否则不建议用int标识字段count = rs.getInt(1);}} catch (SQLException e) {e.printStackTrace();}finally{try {if(rs!=null){rs.close();}if(ps!=null){ps.close();}} catch (SQLException e) {// TODO Auto-generated catch block
                e.printStackTrace();}}return count;}
}

转载于:https://www.cnblogs.com/xiaow/p/4573852.html

java 关于分页的实现相关推荐

  1. java oracle分页查询语句_oracle分页查询语句,java得到分页查询语句的方法

    oracle分页查询语句 select * from ( select a.*, rownum rn from (select * from table_name) a where rownum &l ...

  2. java实现分页功能(一)

    分析: 首先,需要获取总的记录数 我们用 int totalCount;表示,有了总的记录数后我们需要写一个分页算法,将其数据合理的分布在页面上. 分页算法:总页码=总记录数%每页显示的条数==0?总 ...

  3. Java 实现分页功能

    Java 实现分页功能 driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?allowMultiQueries=true ...

  4. JAVA中oracle分页语句,oracle分页查询语句,java得到分页查询语句的方法

    oracle分页查询语句 select * from ( select a.*, rownum rn from (select * from table_name) a where rownum &l ...

  5. Java IPage分页 加自定义sql

    Java IPage分页 加自定义sql 引入依赖 User实体类 controller service impl impl常规操作 impl自定义参数重写Sql 直接在impl 中写好 Sql 当作 ...

  6. Java Web 分页实现

      分页实现的效果: 一.从效果可以看出内容由两部分组成: 1. 学生信息 2. 页码查询(当前页码为第一页或最后一页时,不可点击,该内容会在 tab.jsp 文件中具体写出) 二.主要知识为: JD ...

  7. Bootstrap4+MySQL前后端综合实训-Day06-PM【MD5加码-生成32位md5码、ResultData.java、分页查询用户数据、添加用户按钮的实现】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目录 MD5加码 生成32位md5码 ResultData.java 分页查询 ...

  8. java实现分页打印功能_web 页面分页打印的实现

    1.首先引入一个WebBrowser在需要打印的页面,可以直接添加: 复制代码 代码如下: 到页面,或者使用javascript在需要的时候临时添加也可以: 复制代码 代码如下: document.b ...

  9. java freemarker 分页_10小时入门java开发04 springboot+freemarker+bootstrap快速实现分页功能...

    本节是建立在上节的基础上,上一节给大家讲了管理后台表格如何展示数据,但是当我们的数据比较多的时候我们就需要做分页处理了.这一节给大家讲解如何实现表格数据的分页显示. 准备工作 还是老规矩,看效果图 可 ...

最新文章

  1. SQL Server:APPLY表运算符
  2. vivo升级android10系统,官方确认vivo NEX旗舰版会直接升级到Android10
  3. 麦肯锡70页特辑报告论述《人工智能的未来之路》(完整版PPT)
  4. 【BZOJ4129】Haruna’s Breakfast,树上带修莫队+权值分块求mex
  5. 弹窗设计UI素材模板|带你了解下弹窗特性
  6. P4859 已经没有什么好害怕的了
  7. Dart云平台-DartPad
  8. 1047. 编程团体赛(20)-PAT乙级真题
  9. 信息的存储与值的计算
  10. centos npm最新版 安装_Docker安装基本命令操作,带你了解镜像和容器的概念!
  11. nsis打包php项目加环境,NSIS制作安装文件全攻略(一) zz
  12. Monitor线程同步
  13. Redis 实战案例总结
  14. python火柴人打架代码_两个火柴人对打动画 如何制作两个火柴人打架的动画效果?...
  15. javaweb项目电子商城购物系统课程设计任务书及成绩评定和毕业设计与实现
  16. express搭建的nodejs项目使用webpack进行打包
  17. smartprinter 这个绝对程序猿的福音啊
  18. ds18b20 c语言代码,读DS18B20序列号(c语言)
  19. 什么是数据库?数据库有什么作用?
  20. ohci之usb_submit_urb 一

热门文章

  1. Linux 下的五种 IO 模型
  2. Spark数据分析实战:大型活动大规模人群的检测和疏散
  3. TS流解析之PAT表格解析
  4. 业界 | 李彦宏:中国人愿意用隐私交换便利性;无人车事故是“人咬狗”新闻...
  5. 【HeadFirst 设计模式学习笔记】6 命令模式
  6. userdel、usermod、newgrp、chown、chgrp、手动添加用户、umask
  7. 如何在鼠标hover时改变标注的样式
  8. 兼容IE,chrome 等所有浏览器 回到顶部代码
  9. 【iCore组合式双核心开发板教程】【快速使用手册】
  10. Samba与Vsftpd结合在企业中的应用