今天闲来无事,摆弄了一下分页,突然发现很多代码长时间不用就生梳了,虽然有些基础,但没有一篇整合的。这里还是简单示例,主要是以后自己翻着看不用百度找啊找找不到一篇想要的

1、PageBean实体类,一页出的内容全都有

  1. package entity;
  2.  
  3. import java.util.List;
  4.  
  5. /**
  6. * 定义一个分页对象
  7. * @author 0
  8. *
  9. */
  10. public class PageBean<T> {
  11. private int pageNo;//当前页码
  12. private int totalPageCount;//总页码
  13. private int totalCount;//总条数
  14. private int pageSize=3;//每页显示条数
  15. private int upPageNo;//上一页
  16. private int nextPageNo;//下一页
  17. //一页返回的数据集合
  18. private List<?> list;
  19. public int getPageNo() {
  20. return pageNo;
  21. }
  22. public void setPageNo(int pageNo) {
  23. //如果当前页码大于0,才设置当前页码值
  24. if(pageNo>0){
  25. this.pageNo=pageNo;
  26. }
  27. }
  28. public int getTotalPageCount() {
  29. return totalPageCount;
  30. }
  31. public void setTotalPageCount(int totalPageCount) {
  32. if(this.getTotalCount()%this.pageSize==0){
  33. this.totalPageCount=this.getTotalCount()/this.pageSize;
  34. }else if(this.getTotalCount()%this.pageSize >0){
  35. this.totalPageCount=this.getTotalCount()/this.pageSize +1;
  36. }else{
  37. this.totalPageCount = 0;
  38. }
  39. }
  40. public int getTotalCount() {
  41. return totalCount;
  42. }
  43. public void setTotalCount(int totalCount) {
  44. this.totalCount = totalCount;
  45. }
  46. public int getPageSize() {
  47. return pageSize;
  48. }
  49. public void setPageSize(int pageSize) {
  50. this.pageSize = pageSize;
  51. }
  52. public int getUpPageNo() {
  53. return upPageNo;
  54. }
  55. //对上一页进行判断
  56. public void setUpPageNo(int upPageNo) {
  57. //如果当前页>1
  58. if(this.pageNo>1){
  59. this.upPageNo = this.pageNo-1;
  60. }
  61. }
  62.  
  63. public int getNextPageNo() {
  64. return nextPageNo;
  65. }
  66. //对下一页进行判断
  67. public void setNextPageNo(int nextPageNo) {
  68. //如果当前页>0且小于总页数,则可以有下一页
  69. if(this.pageNo>0 && this.pageNo < this.totalPageCount){
  70. this.upPageNo = this.pageNo+1;
  71. }
  72. }
  73.  
  74. public List<?> getList() {
  75. return list;
  76. }
  77. public void setList(List<?> list) {
  78. this.list = list;
  79. }
  80.  
  81. }

2、dao层实现类,这里框架用的hibernate。hibernate作dao层的数据处理,真是太方便了

  1. package dao.impl;
  2.  
  3. import java.util.List;
  4.  
  5. import org.hibernate.Query;
  6. import org.hibernate.Session;
  7.  
  8. import util.HibernateSessionFactory;
  9.  
  10. import dao.InfoMationDao;
  11. import entity.Info;
  12. import entity.PageBean;
  13.  
  14. public class InfoMationDaoImpl implements InfoMationDao {
  15.  
  16. public PageBean<Info> getInfoByPage(int pageNo, String where) {
  17. Session session=HibernateSessionFactory.getSession();
  18. PageBean<Info> pagebean=new PageBean<Info>();
  19.  
  20. try {
  21.  
  22. //求数据总量
  23. int totalCount = ((Number) session.createQuery("select count(*) as count from Info where 1=1 "+where).uniqueResult()).intValue() ;
  24. //总数、当前页、总页数
  25. pagebean.setTotalCount(totalCount);
  26. pagebean.setPageNo(pageNo);
  27. pagebean.setTotalPageCount(totalCount/pagebean.getPageSize());
  28. pagebean.setUpPageNo(pageNo-1);
  29. pagebean.setNextPageNo(pageNo+1);
  30.  
  31. //建立查询
  32. Query query = session.createQuery("from Info where 1=1 "+where);
  33. //设置起始行pageSize*pageNo,(pageNo-1)*pageSize
  34. query.setFirstResult((pageNo-1)*pagebean.getPageSize());
  35. //设置每页条数
  36. query.setMaxResults(pagebean.getPageSize());
  37. List<Info> infolist = query.list();
  38. pagebean.setList(infolist);
  39.  
  40. } catch (Exception e) {
  41. e.printStackTrace();
  42. }
  43. return pagebean;
  44. }
  45.  
  46. /* public static void main(String[] args) {
  47. InfoMationDao im=new InfoMationDaoImpl();
  48. int pageno=1;
  49. String where="";
  50. PageBean<Info> pb = im.getInfoByPage(pageno, where);
  51. System.out.println(pb.getList().size());
  52. }*/
  53. }

so easy!

hibernate+pageBean实现分页dao层功能代码的更多相关文章

  1. sping整合hibernate之二:dao层开发

     在上一篇日志中将hibernate的会话工厂sessionFactory注入到了spring的容器中,但这样还不够,因为hibernate的增删改查是要使用事务机制的, 所以还要在spring中配置 ...

  2. mybatis generator 自动生成dao层映射代码

    资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...

  3. 030医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Dao层:基本的查询语句的编写

    我们安装显示的要求: 我们能看到显示的目录里面有:供货企业的名字(这个数据来自于供货商的表[usergys]),流水号,通用名,剂型(这些都来自药品信息表),供货的状态(这个呢在gysypml_con ...

  4. DAO 层实现

    一.实验介绍 1.1 实验内容 本节课程主要利用 MyBatis 框架实现 DAO 层. 1.2 实验知识点 MyBatis 框架 MySQL 1.3 实验环境 JDK1.8 Eclipse Java ...

  5. Spring框架之使用JdbcTemplate开发Dao层程序

    简介: JdbcTemplate开发dao层程序     由Spring框架给我们提供,Spring提供的很多操作数据源(关系型数据库,二维表格模型,有明确的行和列(mysql/orcal等) 非关系 ...

  6. 带分页功能的SSH整合,DAO层经典封装

    任何一个封装讲究的是,使用,多状态.Action:     任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...

  7. 【DRP】-Dao层常用功能代码:增删改查

    本系列博客内容为:做DRP系统中Dao层常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责: ...

  8. Java中Action层、Service层、Modle层和Dao层的功能区分

    一.Java中Action层.Service层.Modle层和Dao层的功能区分: 首先,这是现在最基本的分层方式,结合了SSH架构. modle层就是对应的数据库表的实体类.(即domain) Da ...

  9. java中Action层、Service层和Dao层的功能区分

    Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...

随机推荐

  1. Flink PPT

    杭州第六次 Spark & Flink Meetup 资料分享 https://github.com/397090770/Spark-Flink-Meetup-6-Hangzhou https ...

  2. GGGGCCCC

    Evaluating and improving remembered sets in the HotSpot G1 garbage collector http://www.diva-portal. ...

  3. Multi-cloud Kubernetes with Triton

    https://www.joyent.com/blog/triton-kubernetes-multicloud While running an experimental Kubernetes cl ...

  4. 《java虚拟机》汇总所有关键要点

    一  .java虚拟机底层结构详解 我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统.存储区域.数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现J ...

  5. 高级数据库及一步一步搭建versant数据库

    总的来说,高级数据库课程分为分布式数据库和面向对象数据库两块.分布式数据库介绍了分布式数据库的方方面面,包括数据库系统的设计.查询处理优化.事务管理和恢复.并发控制.可靠性.安全性与目录管理等.面向对 ...

  6. CentOS下使用crontab+mysqldump实现定时自动备份数据库

    一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...

  7. 【Cmd】那些年,我们迷恋的cmd命令(一)

    小续 还记得,那些年玩hack的朋友吗,现在玩这个的,基本都是小孩子了(俗称脚本小子). 还记得,那些年敲过的命令吗,现在的孩子,都用工具了(叫工具党). 孩子们,健康的网络环境需要大家一起去维护. ...

  8. Linux环境系搭建Git服务器过程全纪录

    Last :: from 139.199.180.186 [root@VM_219_131_centos ~]# yum install curl-devel expat-devel gettext- ...

  9. vs2015配置OpenGL开发环境

    先吐槽下,不知道微软怎么整的,从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用. 更搞笑的是,在win10下,vs2015安装还报win sdk安装失败,这典型的自己 ...

  10. maven多环境发布.

    需要设定profile和build <profiles> <profile> <id>develop</id> <properties> & ...