本人用的是sg-uap虚拟环境

//查询方法
//参数 RequestCondition 配合 controller 的 @QueryRequestParam注解可以将前台传入整个对象进行接收
//参数 UserSession 当前登录的用户信息
//obj 实体类
public QueryResultObject query(RequestCondition queryCondition,UserSession userSession){ QueryCriteria qc = new QueryCriteria;
//查询集合
List<obj> result = null;
//查询记录总数
int count = 0;
//查询条件
qc.addWhere("","数据库字段名","=","值");
//查询表
qc.addFrom(obj.class)
//其他的判断条件
if(queryCondition != null){
//添加其他查询条件
qc = wrapQuery(queryCondition,qc);
//获取总记录数
count = getRecordCount(qc);
//添加分页信息
qc = wrapPage(queryCondition,qc);
result = hibernateDao.findAllByCriteria(qc);
}else{
result = hibernateDao.findAllByCriteria(qc);
count = getRecordCount(qc);
}
return 封装对象返回
}
public QueryCriteria wrapQuery(QueryCriteria qc,RequestCondition queryCondition ){ List<QueryFilter> wheres = queryCondition.getQueryFilter(obj.class);
if(wheres != null && wheres.size() > 0){
//模糊查询
for(int i = 0;i<wheres.size();i++){
QueryFilter q = wheres.get(i);
if("对象属性".equals(q.getFieldName)){
//设置此属性的模糊查询
q.setOperator("^");
}
//排序
qc.addOrder("排序字段","排序规则");
//构造查询where语句
CrudUtils.addQCWhere(qc,Wheres,Obj.class.getName());
}
String orders = queryCondition.getSorter();
//替换分隔符构建排序语句
if(orders != null){
qc.addOrder(Order.replaceAll("&",","))
}
return qc;
} public QueryCriteria wrapPage(QueryCriteria qc,RequestCondition queryCondition ){
int pageIndex = 1,pageSize = 1;
if(queryCondition.getPageIndex() != null&&queryCondition.getPageSize() != null){
pageIndex=queryCondition.getPageIndex();
pageSize=queryCondition.getPageSize();
qc.addPage(pageIndex,pageSize);
}
return qc;
}

一个简单的模糊+分页查询

工作笔记—hibernate之QueryCriteria的更多相关文章

  1. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

  2. 2016年第2周读书笔记与工作笔记 scrollIntoView()与datalist元素

    这一周主要是看了html5网页开发实例与javascript 高级程序设计,供以后翻阅查找.  html5网页开发实例第1章与第二章的2.1部分: 第1章内容: html5在w3c的发展史. 浏览器的 ...

  3. javascript - 工作笔记 (事件四)

    在javascript - 工作笔记 (事件绑定二)篇中,我将事件的方法做了简单的包装,  JavaScript Code  12345   yx.bind(item, "click&quo ...

  4. Sencha Touch2 工作笔记

    Sencha Touch2 工作笔记 Ext.dataview.List activate( this, newActiveItem, oldActiveItem, eOpts ) Fires whe ...

  5. 工作笔记5.JAVA图片验证码

    本文主要内容为:利用JAVA图片制作验证码. 设计思路: 1.拷贝AuthImageServlet.class图片验证码 2.配置web.xml 3.JSP中,调用封装好的AuthImageServl ...

  6. 读书笔记——《MySQL DBA 工作笔记》

    关于前言 作者在前言中提出的一些观点很具有参考价值, 梳理完整的知识体系 这是每一个技术流都应该追逐的,完整的知识体系能够使我们对知识的掌握更加全面,而不仅仅局限于点 建立技术连接的思维,面对需求,永 ...

  7. 《工作笔记:移动web页面前端开发总结》

    工作笔记:移动web页面前端开发总结 移动web在当今的发展速度是一日千里,作为移动领域的门外汉,在这段时间的接触后,发现前端开发这一块做一个小小的总结. 1.四大浏览器内核 1.Trident (I ...

  8. 【工作笔记】BAT批处理学习笔记与示例

    BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...

  9. Hibernate学习笔记-Hibernate关系映射

    1. 初识Hibernate——关系映射 http://blog.csdn.net/laner0515/article/details/12905711 2. Hibernate 笔记8 关系映射1( ...

随机推荐

  1. python web开发小结

    书籍 <python基础教程> <流畅的python> web框架 flask django tornado ORM sqlalchemy orator 消息队列 celery ...

  2. vue 路由传参 、接收参数

    传参组件 一. <router-link :to='"/main/course?navName=" +item.columnName + "&id=&quo ...

  3. request.upload.addEventListener in not a function。

    本人在使用vue开发一套后台系统时,碰到了一个上传文件的需求,因为平时做的上传是使用ajax的方式来进行上传. 现在是使用axios来进行上传,方式没有什么改变: npm i  axios  直接上 ...

  4. java se系列(十一)线程

    1 线程的概述 进程:正在运行的程序,负责了这个程序的内存空间分配,代表了内存中的执行区域. 线程:就是在一个进程中负责一个执行路径. 多线程:就是在一个进程中多个执行路径同时执行. 图上的一键优化与 ...

  5. vue项目页面空白

    vue项目页面空白 今天新建项目,然后发现路由也改了 app.vue里面也是啥都没有, 但是访问http://localhost:8080/#/login 能访问 里面确实空白的 错误: 错误原因: ...

  6. es第二篇:Document APIs

    文档CRUD API分为单文档API和多文档API.这些API的索引名参数既可以是一个真正的索引的名称,也可以是某个索引的别名alias. 单文档API有:Index API.Get API.Dele ...

  7. python pandas使用chunksize异步拆分固定行数的文件

    import pandas as pd import asyncio from collections import defaultdict collect = defaultdict(list) # ...

  8. Ubuntu 16.04 compare 软件安装

    1软件官网 http://www.scootersoftware.com/download.php?zz=kb_linux_install 2.打开上述网址可看到安装信息 终端安装方式: wget h ...

  9. (转)error while loading shared libraries:libmysqlclient.so.18 错误

    error while loading shared libraries:libmysqlclient.so.18错误 新手安装php的时候如果出现这种问题,解决办法很简单,就是查看你的mysql安装 ...

  10. Full Text Search 实现Sort的实现方案

    CREATE TABLE dbo.pageStore( ID int NOT NULL, StoreName varchar(50) NULL, OwnerOccupation varchar(50) ...