hibernate+pageBean实现分页dao层功能代码
今天闲来无事,摆弄了一下分页,突然发现很多代码长时间不用就生梳了,虽然有些基础,但没有一篇整合的。这里还是简单示例,主要是以后自己翻着看不用百度找啊找找不到一篇想要的
1、PageBean实体类,一页出的内容全都有
- package entity;
- import java.util.List;
- /**
- * 定义一个分页对象
- * @author 0
- *
- */
- public class PageBean<T> {
- private int pageNo;//当前页码
- private int totalPageCount;//总页码
- private int totalCount;//总条数
- private int pageSize=3;//每页显示条数
- private int upPageNo;//上一页
- private int nextPageNo;//下一页
- //一页返回的数据集合
- private List<?> list;
- public int getPageNo() {
- return pageNo;
- }
- public void setPageNo(int pageNo) {
- //如果当前页码大于0,才设置当前页码值
- if(pageNo>0){
- this.pageNo=pageNo;
- }
- }
- public int getTotalPageCount() {
- return totalPageCount;
- }
- public void setTotalPageCount(int totalPageCount) {
- if(this.getTotalCount()%this.pageSize==0){
- this.totalPageCount=this.getTotalCount()/this.pageSize;
- }else if(this.getTotalCount()%this.pageSize >0){
- this.totalPageCount=this.getTotalCount()/this.pageSize +1;
- }else{
- this.totalPageCount = 0;
- }
- }
- public int getTotalCount() {
- return totalCount;
- }
- public void setTotalCount(int totalCount) {
- this.totalCount = totalCount;
- }
- public int getPageSize() {
- return pageSize;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- public int getUpPageNo() {
- return upPageNo;
- }
- //对上一页进行判断
- public void setUpPageNo(int upPageNo) {
- //如果当前页>1
- if(this.pageNo>1){
- this.upPageNo = this.pageNo-1;
- }
- }
- public int getNextPageNo() {
- return nextPageNo;
- }
- //对下一页进行判断
- public void setNextPageNo(int nextPageNo) {
- //如果当前页>0且小于总页数,则可以有下一页
- if(this.pageNo>0 && this.pageNo < this.totalPageCount){
- this.upPageNo = this.pageNo+1;
- }
- }
- public List<?> getList() {
- return list;
- }
- public void setList(List<?> list) {
- this.list = list;
- }
- }
2、dao层实现类,这里框架用的hibernate。hibernate作dao层的数据处理,真是太方便了
- package dao.impl;
- import java.util.List;
- import org.hibernate.Query;
- import org.hibernate.Session;
- import util.HibernateSessionFactory;
- import dao.InfoMationDao;
- import entity.Info;
- import entity.PageBean;
- public class InfoMationDaoImpl implements InfoMationDao {
- public PageBean<Info> getInfoByPage(int pageNo, String where) {
- Session session=HibernateSessionFactory.getSession();
- PageBean<Info> pagebean=new PageBean<Info>();
- try {
- //求数据总量
- int totalCount = ((Number) session.createQuery("select count(*) as count from Info where 1=1 "+where).uniqueResult()).intValue() ;
- //总数、当前页、总页数
- pagebean.setTotalCount(totalCount);
- pagebean.setPageNo(pageNo);
- pagebean.setTotalPageCount(totalCount/pagebean.getPageSize());
- pagebean.setUpPageNo(pageNo-1);
- pagebean.setNextPageNo(pageNo+1);
- //建立查询
- Query query = session.createQuery("from Info where 1=1 "+where);
- //设置起始行pageSize*pageNo,(pageNo-1)*pageSize
- query.setFirstResult((pageNo-1)*pagebean.getPageSize());
- //设置每页条数
- query.setMaxResults(pagebean.getPageSize());
- List<Info> infolist = query.list();
- pagebean.setList(infolist);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return pagebean;
- }
- /* public static void main(String[] args) {
- InfoMationDao im=new InfoMationDaoImpl();
- int pageno=1;
- String where="";
- PageBean<Info> pb = im.getInfoByPage(pageno, where);
- System.out.println(pb.getList().size());
- }*/
- }
so easy!
hibernate+pageBean实现分页dao层功能代码的更多相关文章
- sping整合hibernate之二:dao层开发
在上一篇日志中将hibernate的会话工厂sessionFactory注入到了spring的容器中,但这样还不够,因为hibernate的增删改查是要使用事务机制的, 所以还要在spring中配置 ...
- mybatis generator 自动生成dao层映射代码
资源: doc url :http://www.mybatis.org/generator/ download:https://github.com/mybatis/generator/release ...
- 030医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Dao层:基本的查询语句的编写
我们安装显示的要求: 我们能看到显示的目录里面有:供货企业的名字(这个数据来自于供货商的表[usergys]),流水号,通用名,剂型(这些都来自药品信息表),供货的状态(这个呢在gysypml_con ...
- DAO 层实现
一.实验介绍 1.1 实验内容 本节课程主要利用 MyBatis 框架实现 DAO 层. 1.2 实验知识点 MyBatis 框架 MySQL 1.3 实验环境 JDK1.8 Eclipse Java ...
- Spring框架之使用JdbcTemplate开发Dao层程序
简介: JdbcTemplate开发dao层程序 由Spring框架给我们提供,Spring提供的很多操作数据源(关系型数据库,二维表格模型,有明确的行和列(mysql/orcal等) 非关系 ...
- 带分页功能的SSH整合,DAO层经典封装
任何一个封装讲究的是,使用,多状态.Action: 任何一个Action继承分页有关参数类PageManage,自然考虑的到分页效果,我们必须定义下几个分页的参数.并根据这个参数进行查值. 然 ...
- 【DRP】-Dao层常用功能代码:增删改查
本系列博客内容为:做DRP系统中Dao层常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责: ...
- Java中Action层、Service层、Modle层和Dao层的功能区分
一.Java中Action层.Service层.Modle层和Dao层的功能区分: 首先,这是现在最基本的分层方式,结合了SSH架构. modle层就是对应的数据库表的实体类.(即domain) Da ...
- java中Action层、Service层和Dao层的功能区分
Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...
随机推荐
- Flink PPT
杭州第六次 Spark & Flink Meetup 资料分享 https://github.com/397090770/Spark-Flink-Meetup-6-Hangzhou https ...
- GGGGCCCC
Evaluating and improving remembered sets in the HotSpot G1 garbage collector http://www.diva-portal. ...
- Multi-cloud Kubernetes with Triton
https://www.joyent.com/blog/triton-kubernetes-multicloud While running an experimental Kubernetes cl ...
- 《java虚拟机》汇总所有关键要点
一 .java虚拟机底层结构详解 我们知道,一个JVM实例的行为不光是它自己的事,还涉及到它的子系统.存储区域.数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现J ...
- 高级数据库及一步一步搭建versant数据库
总的来说,高级数据库课程分为分布式数据库和面向对象数据库两块.分布式数据库介绍了分布式数据库的方方面面,包括数据库系统的设计.查询处理优化.事务管理和恢复.并发控制.可靠性.安全性与目录管理等.面向对 ...
- CentOS下使用crontab+mysqldump实现定时自动备份数据库
一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...
- 【Cmd】那些年,我们迷恋的cmd命令(一)
小续 还记得,那些年玩hack的朋友吗,现在玩这个的,基本都是小孩子了(俗称脚本小子). 还记得,那些年敲过的命令吗,现在的孩子,都用工具了(叫工具党). 孩子们,健康的网络环境需要大家一起去维护. ...
- Linux环境系搭建Git服务器过程全纪录
Last :: from 139.199.180.186 [root@VM_219_131_centos ~]# yum install curl-devel expat-devel gettext- ...
- vs2015配置OpenGL开发环境
先吐槽下,不知道微软怎么整的,从win7开始,OpenGL的头文件更改到windows SDK中,不安装就不能用. 更搞笑的是,在win10下,vs2015安装还报win sdk安装失败,这典型的自己 ...
- maven多环境发布.
需要设定profile和build <profiles> <profile> <id>develop</id> <properties> & ...