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

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层功能代码的更多相关文章

  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. JDBC 事务和 JTA 事务

    Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供的,容器事务大多是基于 ...

  2. 开发中遇到的一些mongoose的问题

    save方法,这个方法可以用来创建新的文档,也可以用来修改已有文档 1,save创建新文档 var Tank = mongoose.model('Tank', yourSchema); 2 var s ...

  3. CSAPP 读书笔记 - 2.31练习题

    根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1)  属于第一种情况 sum = x ...

  4. JSch远程执行脚本

    JSch远程执行脚本 2017-02-24 在自动化测试的时候,需要远程操控服务器做一些操作,比如切日.起服务器.执行某些脚本.如何实现? 我们可以利用JSch,远程执行脚本.JSch是Java Se ...

  5. lsblk命令

    lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息.块设备有硬盘,闪存盘,cd-ROM等等.lsblk命令包含在util-linux-ng包中,现 ...

  6. 07Vue.js快速入门-Vue路由详解

    对于前端来说,其实浏览器配合超级连接就很好的实现了路由功能.但是对于单页面应用来说,浏览器和超级连接的跳转方式已经不能适用, 所以各大框架纷纷给出了单页面应用的解决路由跳转的方案. Vue框架的兼容性 ...

  7. Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

    System.Data.ConstraintException: Failed to enable constraints. One or more rows contain values viola ...

  8. jQuery 学习笔记1 弹出一个对话框

    这里推荐使用sublime text 2来写,外加zen coding. 首先是写html 只需要html:xt,然后tab就可以得到一个html的完整结构. <!DOCTYPE html PU ...

  9. ViewController之间的转场和数据传递

    ViewController之间的转场和数据传递 可以正向传递值, 反向传递值. 注意反向传值的时候,方法的位置: https://github.com/urmyfaith/GRDBUsage/blo ...

  10. C语言 · 字串逆序

    算法训练 字串逆序   时间限制:1.0s   内存限制:512.0MB      问题描述 给定一个字符串,将这个串的所有字母逆序后输出. 输入格式 输入包含一个字符串,长度不超过100,字符串中不 ...