Hibernate里面如何使用DetachedCriteriaCriteria 实现多条件分页查询
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 实现多条件分页查询的更多相关文章
- 【java】spring-data-jpa 集成hibernate实现多条件分页查询
初次接触spring-data-jpa,实现多条件分页查询. 基础环境 Spring Boot+spring-data-jpa+hibernate+mysql 1.接口 要继承这个接口,这个接口提供了 ...
- asp.net mvc多条件+分页查询解决方案
开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...
- thinkphp 带条件分页查询
thinkphp 带条件分页查询:form表单传值时候,method='get'. 用 get 传值
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题: 浏览器安全限制了前端脚本跨站点的访问资源, ...
- Hibernate 条件-分页查询
这里我们继续跟着上一次的节奏继续学习Hibernate的查询. 1.条件查询一(占位符) 按照占位符的方式进行条件查询,这里query有一个setInteger(arg1, arg2)方法,其中第一个 ...
- Hibernate查询,返回new对象(注意这个新定义的类要有构造函数),使用sql带条件分页查询并且把结果显示到一个对象的集里面的解决方案
IIndexDao package com.ucap.netcheck.dao; import com.ucap.netcheck.combination.beans.IndexCombinat ...
- EasyUi+Spring Data 实现按条件分页查询
Spring data 介绍 Spring data 出现目的 为了简化.统一 持久层 各种实现技术 API ,所以 spring data 提供一套标准 API 和 不同持久层整合技术实现 . 自己 ...
- JPA实现复杂条件分页查询
相信熟悉Hibernate的人对于ORM给编程带来的便利于快捷一定不陌生,相对于MyBatis等需要编写复杂的SQL语句,ORM映射为我们带来的便利显而易见.但是,在获得便利的同时,失去的便是灵活性, ...
随机推荐
- C#爬取京东手机数据+PowerBI数据可视化展示
此系列博文链接 C#爬虫基本知识 Html Agility Pack解析html TODO: EF6中基本认识. EF6操作mysql MySQL乱码问题 C#爬虫 在开头贴一下github仓库地址, ...
- AjaxResult
package com.sprucetec.tms.utils; /** * AjaxReturn * * @author Yinqiang Du * @date 2016/7/12 */import ...
- python收集jvm数据
之前前辈用 java 写的收集 jvm 脚本, 不太方便组内小伙伴维护, 遂用 python 重写了 #!/usr/bin/env python # -*- coding: utf-8 -*- # F ...
- odoo开发笔记--字段追踪,消息通知机制
odoo有着强大的消息记录.通知机制: 实际开发中,常常会有客户的需求,页面上form视图中的某些字段不允许反复修改, 假如有的用户修改了,恶意搞坏,往往容易给公司利益造成损失,或破坏,那么如何有效的 ...
- Linux下ps -ef 和 ps aux的区别
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格, ...
- (转)python-user-agents
原文:http://blog.topspeedsnail.com/archives/1958 Python3网络爬虫(四):使用User Agent和代理IP隐藏身份-------https://bl ...
- Webflux快速入门
SpringWebflux是SpringFramework5.0添加的新功能,WebFlux本身追随当下最火的Reactive Programming而诞生的框架,那么本篇就来简述一下这个框架到底是做 ...
- 推荐几个 WebSocket 服务端实现
http://netty.io/http://socket.io/https://github.com/StackExchange/NetGainhttps://github.com/SignalR/ ...
- Hive执行过程中出现Caused by : java.lang.ClassNotFoundException: org.cloudera.htrace.Trace的错误解决办法(图文详解)
不多说,直接上干货! 问题详情 如下 这个错误的意思是缺少 htrace-core-2.04.jar. 解决办法: 将$HBASE_HOME/lib下的htrace-core-2.04.jar拷贝到$ ...
- SwitchHosts—hosts管理工具
SwitchHosts是一个管理.快速切换Hosts小工具,开源软件,一键切换Hosts配置,非常实用,高效.开发Web过程成,部署有多套环境,网址域名都相同,部署在不同的服务器上,有开发环境.测试环 ...