WEB层:

// 获取分页的请求参数
String start = request.getParameter("start");
String page = request.getParameter("page");
String limit = request.getParameter("limit");

//获取请求表单的值,然后根据值是否为空,构件离线查询条件。
String tb_zzid = request.getParameter("tb_zzid");
String zc_xmbh = request.getParameter("zc_xmbh");
String zy_xmbh = request.getParameter("zy_xmbh");
String zc_zcly = request.getParameter("zc_zcly");

DetachedCriteria criteria=DetachedCriteria.forClass(Zyzc.class);

if(tb_zzid !=null && !"".equals(tb_zzid))
{
criteria.add(Restrictions.like("tb_zzid", tb_zzid, MatchMode.ANYWHERE));
}
if(zc_xmbh !=null && !"".equals(zc_xmbh))
{
criteria.add(Restrictions.like("zc_xmbh", zc_xmbh, MatchMode.ANYWHERE));
}
if(zy_xmbh !=null && !"".equals(zy_xmbh))
{
criteria.add(Restrictions.like("zy_xmbh", zy_xmbh, MatchMode.ANYWHERE));
}
if(zc_zcly !=null && !"".equals(zc_zcly))
{
criteria.add(Restrictions.like("zc_zcly", zc_zcly, MatchMode.ANYWHERE));
}

--------------------------------

然后就可以调用service层的方法

//获取根据离线条件查询的记录;

es.getZyzcsByConditonPage( criteria,Integer.parseInt(page), Integer.parseInt(limit))

//获取根据离线条件查询的记录总数;

es.getZyzcCountByCondition(criteria)

---------------------------------------------------------------------------------------------------------

SERVICE层:

//调用DAO层方法
public long getZyzcCountByCondition(DetachedCriteria criteria) {
// TODO Auto-generated method stub
try
{
return zyzcDao.findCountByCondition(criteria);
}
catch (Exception e)
{
e.printStackTrace();
throw new ElecException("获取发电记录列表出错");
}
}

//调用DAO方法获取记录总数
public List<Zyzc> getZyzcsByConditonPage(DetachedCriteria criteria, int pageNo, int pageSize)
{

List<Zyzc> result = new ArrayList<Zyzc>();
try
{
List el = zyzcDao.findByConditionPage(criteria, pageNo, pageSize);
for (Object o : el)
{
Zyzc e = (Zyzc)o;
result.add(e);
}
return result;
}
catch (Exception e)
{
e.printStackTrace();
throw new ElecException("获取发电记录列表出错");
}
}

--------------------------------------------------------------------

DAO层:

//继承hibernate4公共基础类,获取session,然后执行离线查询;

public class ZyzcDAOImpl extends BaseDaoHibernate4<Zyzc> implements ZyzcDAO
{

public List findByConditionPage(DetachedCriteria criteria, int pageNo,int pageSize)
{
Criteria c =criteria.getExecutableCriteria(getSessionFactory().getCurrentSession());
// 执行分页,并返回查询结果
return c.setProjection(null)
.setFirstResult((pageNo - 1) * pageSize)
.setMaxResults(pageSize)
.list();
}

// 获取查询记录结果总数,用于分页;
public long findCountByCondition(DetachedCriteria criteria)
{
Criteria c =criteria.getExecutableCriteria(getSessionFactory().getCurrentSession());
c.setProjection(Projections.rowCount());
Long totalNum =(Long) c.uniqueResult();
return totalNum;
}

}

----------------------------------------------

结果演示:

未设置任何条件时,显示记录总数量;

设置条件后,显示查询结果总数。

Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询的更多相关文章

  1. 【java】spring-data-jpa 集成hibernate实现多条件分页查询

    初次接触spring-data-jpa,实现多条件分页查询. 基础环境 Spring Boot+spring-data-jpa+hibernate+mysql 1.接口 要继承这个接口,这个接口提供了 ...

  2. asp.net mvc多条件+分页查询解决方案

    开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...

  3. thinkphp 带条件分页查询

    thinkphp 带条件分页查询:form表单传值时候,method='get'. 用 get 传值

  4. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  5. ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)

    ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题:  浏览器安全限制了前端脚本跨站点的访问资源, ...

  6. Hibernate 条件-分页查询

    这里我们继续跟着上一次的节奏继续学习Hibernate的查询. 1.条件查询一(占位符) 按照占位符的方式进行条件查询,这里query有一个setInteger(arg1, arg2)方法,其中第一个 ...

  7. Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案

     IIndexDao package com.ucap.netcheck.dao; import com.ucap.netcheck.combination.beans.IndexCombinat ...

  8. EasyUi+Spring Data 实现按条件分页查询

    Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...

  9. JPA实现复杂条件分页查询

    相信熟悉Hibernate的人对于ORM给编程带来的便利于快捷一定不陌生,相对于MyBatis等需要编写复杂的SQL语句,ORM映射为我们带来的便利显而易见.但是,在获得便利的同时,失去的便是灵活性, ...

随机推荐

  1. Spring Cloud实践之集中配置Spring-config

    将一个系统中各个应用的配置文件集中起来,方便管理. import org.springframework.boot.SpringApplication; import org.springframew ...

  2. Weekly Contest 133

    1030. Matrix Cells in Distance Order We are given a matrix with R rows and C columns has cells with ...

  3. Class和普通js构造函数的区别

    Class 在语法上更加贴合面向对象的写法 Class 实现继承更加易读.易理解 更易于写 java 等后端语言的使用 本质还是语法糖,使用 prototype Class语法 typeof Math ...

  4. AWD比赛常规套路

    作者:Leafer   本文属于Arctic shell原创内容计划文章,转载请注明原文地址! 比赛环境:纯净win10,最新版kali,securecrt或者WinSCP 在进入服务器后应进行的常规 ...

  5. 如何给wp(Windows phone)中搜索关键字加亮?

    问题来源 最近在群里看到群友讨论在wp中有个搜索功能,要求搜索关键字在搜索结果内容中加亮(即加颜色),由于wp中没有自带这样的控件,于是大家各抒自见,有人说用第三方控件,有人说用richtextbox ...

  6. vue路由router的三种传参方式

    方法三: 传参页面传递参数方式: this.$router.push({ path: 'indexTwoDetails', query: { "id": id } }) 接受参数页 ...

  7. 提取PPT中的原始图片

    写Word的不如做Excel 的,做Excel不如做PPT的,写代码的不如做PPT. 为了在电子邮件中上传PPT,其中的图片大都经过压缩,以便缩小PPT的体积.那么如何将PPT中的图片,还原成没有经过 ...

  8. [Leetcode]下一个更大元素II

    题目 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地 ...

  9. 性能优化中CPU、内存、磁盘IO、网络性能的依赖(转)

    关于系统性能优化,推荐一篇不错的博客! 系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试 ...

  10. vs 2017 IIS EXPRESS 增加局域网访问

    在VS调试站点,默认使用IISExpress,locall+端口,为了使用IP地址.多域名调试,找到 IISExpress下的applicationhost.config,在目标站点下增加类似行: & ...