Criteria查询用法
Criteria
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。
构建Criteria查询
Criteria 这个接口代表对一个特定的持久化类的查询,Session是用来创建Criteria实例的工厂:
创建方法:Criteria criteria = session.createCriteria(Mytest.class);
Criteria对SQL进行封装,让开发人员可以用对象的方式对数据库进行操作。
查询User的所有字段
Criteria criteria = session.createCriteria(User.class);
List users = criteria.list();
Iterator iterator = users.iterator();
while(iterator.hasNext()){User user = (User)iterator.next();System.out.println(user.getId() +" \t " + user.getName() +"/" + user.getAge());
}
Criteria是个容器,如果想要设定查询条件,则要使用add()方法加入Restrictions的条件限制。
如下,查询age大于20且小于40的的数据
Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.gt("age",new Integer(20)));
criteria.add(Restrictions.it("age",new Integer(40)));
List users = criteria.list();
使用逻辑组合来进行查询
age等于(eq)20或者(or)age为空(isNull)
`Criteria criteria = session.createCriteria(User.class);
criteria.add(Restrictions.or(Restrictions.eq("age",new Integer(20)),Restrictions.inNull("age")));
List users = criteria.list();
限定查询数量 分页查询
Criteria的setMaxResults()方法可以限定查询回来的数据量,如果配合setFirstResult()设定传回查询结果起始数据的位置,就可以实现简单的分页,例如传回第51条之后的50条数据(如果有的话):
Criteria criteria = session.createCriteria(User.class);criteria.setFirstResult(51);criteria.setMaxResults(50);List users = criteria.list();
使用Property来进行查询
Property实例是获得一个条件的另外一种途径。你可以通过调用Property.forName() 创建一个使用add()方法加入条件时,预设是使用and来组合条件
Property age = Property.forName("age");List cats = sess.createCriteria(Cat.class).add( Restrictions.disjunction().add( age.isNull() ).add( age.eq( new Integer(0) ) ).add( age.eq( new Integer(1) ) ).add( age.eq( new Integer(2) ) ) ) .add( Property.forName("name").in( new String[] { "Fritz", "Izi", "Pk" } ) ).list();
Restrictions常用限定查询方法
Restrictions.eq –> equal,等于.
Restrictions.allEq –> 参数为Map对象,使用key/value进行多个等于的比对,相当于多个Restrictions.eq 的效果
Restrictions.gt –> great-than > 大于
Restrictions.ge –> great-equal >= 大于等于
Restrictions.lt –> less-than, < 小于
Restrictions.le –> less-equal <= 小于等于
Restrictions.between –> 对应SQL的between子句
Restrictions.like –> 对应SQL的LIKE子句
Restrictions.in –> 对应SQL的in子句
Restrictions.and –> and 关系
Restrictions.or –> or 关系
Restrictions.isNull –> 判断属性是否为空,为空则返回true 相当于SQL的 is null
Restrictions.isNotNull –> 与isNull相反 相当于SQL的 is not null
Restrictions.sqlRestriction –> SQL限定的查询
Order.asc –> 根据传入的字段进行升序排序
Order.desc –> 根据传入的字段进行降序排序
hibernate中Expression和Restrictions的用法有什么区别
Expression是底层的,能够支持嵌套查询。
Restrictions是已实现的基础的查询方式,一般用这个得多。
Criteria查询用法相关推荐
- mybatis :Criteria 查询、条件过滤用法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. PS:hibernate 中也有 Criteria 的用法,见另一文章:jpa : criteria ...
- java criteria and_criteria用法
Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象.简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如: Java代码 Criteria crite ...
- JPA criteria 查询:类型安全与面向对象
序言 自工作以来,除了以前比较流量的hibernate,就是一直使用ORM 规范 JPA了.而这几天工作需要,研究了下JPA的标准查询,名为:JPA criteria查询.相比JPQL,其优势是类型安 ...
- Criteria的用法
一.Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 from Emp e group by e.dept.deptName 2.OID检索 ...
- Criteria的用法详解
Criteria 使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装. 构建Criteria查询 Criteria 这个接口代表对 ...
- Hibernate之Criteria查询及注解
1. 前言 之前从来没有接触过Hibernate,跳槽之后的公司使用的是Hibernate的Criteria查询.简单整理一下. 2.什么是Criteria查询QBC(Query By Criteri ...
- php中条件查询语句,thinkphp3.2框架中where条件查询用法总结
本文实例讲述了thinkphp3.2框架中where条件查询用法.分享给大家供大家参考,具体如下: thinkphp3.2 where 条件查询 在连贯操作中条件where的操作有时候自己很晕,所以整 ...
- Linux下Mysql的查询用法
Linux下Mysql的查询用法 一.Mysql的delete删除语法 1.删除数据库 2.删除数据库的表 二.查询数据 1.基本查询 2.条件查询 三.数据库插入数据 1.创建新表 2.插入数据 四 ...
- c3p0 参数 模糊查询_MySQL模糊查询用法大全(正则、通配符、内置函数等)
文章来源:MySQL模糊查询用法大全(正则.通配符.内置函数等) 原文作者:陈哈哈 来源平台:CSDN SELECT * from table where username like '%陈哈哈%' ...
最新文章
- c语言递归求五阶行列式源代码,久游堂怎么样 -官网
- 加油!兄弟连的兄弟们!
- 微服务注册发现集群搭建——Registrator + Consul + Consul-template + nginx
- 正则表达式 (re包)——python(快餐)
- JAVA 操作系统已经来到第五个版本了 现陆续放出三个版本 这是第二个版本
- VS2010版快捷键指南
- SSH框架下的表单重复提交
- Java实现密码加密
- 计算机导论操作系统教案,《计算机导论》教案.doc
- CentOS6.5修改系统语言为英语
- 什么是量子加密(一)
- 软件测试中的人工智能现状:未来会怎样?
- mysql 1236错误_MySQL 1236错误解决方法_MySQL
- linux 2t gpt 分区,linux大于2T的磁盘使用GPT分区方式
- 求大神帮助 百练我爱北大,编程题目
- 企业进行固定资产盘点的作用
- Excel如何通过年份上的时间差操作求得员工工龄
- 河北计算机四六级报名入口,四六级考试报名入口
- PHP unlink的使用
- 高仿人人网客户端安卓源码