`
dd350356750
  • 浏览: 73571 次
  • 性别: Icon_minigender_1
  • 来自: 怀化
社区版块
存档分类
最新评论

hibernate 组合查询且分页

阅读更多
分页的核心代码

package com.crm.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Example;
import org.hibernate.criterion.MatchMode;

//hibernate 自动创建的一个工厂类
import com.crm.util.HibernateSessionFactory;

public class SplitDAO {


	//获得总共显示的页数,参数:allRows 总行数,pageSize 每页显示的行数
	private int getPages(int allRows, int pageSize) {
		return (allRows + pageSize - 1) / pageSize;
	}

	/*
	 * 获得总页数<br>
	 * parameter<br>
	 * Object obj 类对象<br>
	 * int pageSize 查询几条数据<br>
	 * int currPage 当前是第几页
	 * */
	public SplitBean split(Object obj, int pageSize, int currPage) throws Exception{
		SplitBean sb = new SplitBean();	
		try{
			Session session = HibernateSessionFactory.getSession();			
			Criteria cta = session.createCriteria(obj.getClass());
			// qbe不能用主键查询
			Example ex = Example.create(obj);
			ex.ignoreCase().enableLike(MatchMode.ANYWHERE);
			ex.excludeNone();
			ex.excludeZeroes();
	
			cta.add(ex);
			//获得有多少条数据
			List list = cta.list();		
			//总行数
			int allRows = list.size();
			//数据验证
			pageSize = pageSize<=0?10:pageSize;
			//所有显示的页数
			int pages = getPages(allRows,pageSize);
			//如果输入的当前页大于最大页数
			currPage=currPage > pages?pages:currPage;
			//如果输入的当前页小于等于0
			currPage=currPage<=0?1:currPage;
			
			
			cta.setFirstResult((currPage - 1) * pageSize);//设置起始查询的位置		
			cta.setMaxResults(pageSize);				 //设置一次最多查多少条数据
			
			
			List list2 = cta.list();						//查询出需要的数据
			
			
			//对封装类进行设置数据
			sb.setContent(list2);
			sb.setCurrPage(currPage);
			sb.setPageSize(pageSize);
			sb.setPages(pages);
			sb.setAllRows(allRows);
		}finally{
			HibernateSessionFactory.closeSession();
		}
		return sb;
	}

}


把分页的数据用一个实体对象保存

package com.crm.dao;

//封装分页显示数据类
import java.util.List;

public class SplitBean {

	private int allRows;	//总行数

	private int pageSize;	//显示行数

	private int currPage;	//当前页数
	
	private int pages;		//总页数

	private List content;	//显示数据

	
	
	public int getAllRows() {
		return allRows;
	}

	public void setAllRows(int allRows) {
		this.allRows = allRows;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getCurrPage() {
		return currPage;
	}

	public void setCurrPage(int currPage) {
		this.currPage = currPage;
	}

	public List getContent() {
		return content;
	}

	public void setContent(List content) {
		this.content = content;
	}

	public int getPages() {
		return pages;
	}

	public void setPages(int pages) {
		this.pages = pages;
	}

}



用hibernate 写的一个通用分页程序.
希望大家有更好的例子上传来给小弟学习学习
分享到:
评论

相关推荐

    基于spring+hibernate的组合查询+分页组件

    NULL 博文链接:https://fengwen.iteye.com/blog/635799

    Hibernate 中文 html 帮助文档

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9. 表达式 ...

    hibernate 体系结构与配置 参考文档(html)

    14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. join 语法的形式 14.5. select子句 14.6. 聚集函数 14.7. 多态查询 14.8. where子句 14.9....

    第24次课-1 Spring与Hibernate的整合

    另外,从Spring 2.0开始增加了对命名SQL查询的支持,也增加了对分页的支持。 24.3 Spring对Hibernate的简化 24.3.3 HibernateTemplate的常用方法 void delete(Object entity):删除指定的持久化实例 void delete...

    ssh项目整合

    ssh项目整合 struts2.x hibernate3.x spring3.x 组合查询 分页显示

    低清版 大型门户网站是这样炼成的.pdf

    5.3.3 分页查询 307 5.3.4 连接查询 308 5.3.5 子查询 311 5.3.6 动态实例化查询结果 313 5.4 qbc查询方式 314 5.4.1 基本查询 315 5.4.2 qbe查询 317 5.4.3 分页查询 318 5.4.4 复合查询 318 5.4.5 离线...

    ssh_crm1.rar

    ssh(客户管理系统) 开发环境:eclipse+tomcat8.5+MYSQL5.5+SVN 软件架构:Struts2 + hibernate5.x ...- 多条件组合查询 第五个 统计分析模块 (1)根据来源进行统计分析 - 使用hibernateTemplate调用底层sql

    删除-其他类别分页QQ菜单jsp标签-noka3.9.zip

    MySQL数据库作为数据存储,可以提供稳定的数据存储和快速的数据查询。而JSP作为页面开发技术,可以方便地生成动态的网页内容。 在项目中,Spring框架提供了依赖注入和面向切面编程的功能,可以提高代码的可维护性...

    hibernate-generic-dao:自动从code.google.comphibernate-generic-dao导出

    将单个过滤器与逻辑运算符(AND,OR,NOT)的任意组合组合。 按属性排序。 分页。 从客户端代码远程定义搜索。 将搜索结果转换为对象,列表,数组和地图 指定要急切获取的关联。 指定列运算符,例如COUNT,SUM...

    ssh_crm.zip_crm_spring_ssh_ssh_crm_struts

    本项目为客户关系管理系统,主要模块分为:客户...实现了客户与联系人的增删改查,分页显示、级联删除、多条件组合查询和统计分析。本项目结构上分为表现层、业务层和数据访问层,采用Spring+Struts+Hibernate实现。

    一个基于ext的ajax小例子

    后台是hibernate-annotations和spring以及dwr的组合。 顺便演示了一下用servlet来返回json数据给ext框架的方式。 &lt;br&gt;在grid的演示部分,包括了分页的数据调用和如何处理来自于dwr的数据(dwr的部分和...

    达内当当网项目源代码

    此代码是达内201306毕业时做的,经多次测试,暂未发现bug,采用了两种框架组合整合:struts2与Hibernate整合和SSH整合。代码都放在一个包里,方便学习和对比,默认采用了SSH整合。代码有很多注释,类名见名知意,方便...

    火炬博客系统

    本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。 本系统是一个先进的博客系统,能基本...

    火炬博客系统2

    本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。 本系统是一个先进的博客系统...

    火炬博客系统3

    件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。 本系统是一...

    火炬博客系统4

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。 本系统是...

    火炬博客系统7

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...

    火炬博客系统6

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...

    火炬博客系统5

    软件及安装说明 &lt;br&gt; 本系统是一个Struts+Spring+Hibernate组合开发的博客系统,本系统使用分层体系架构,综合运用struts+spring+hibernate 三大主流开源框架构建,稳定高效、功能强大、易于维护。系统分为四个...

Global site tag (gtag.js) - Google Analytics