More Related Content
Similar to 16 hibernate criteria查询
Similar to 16 hibernate criteria查询 (20)
16 hibernate criteria查询
- 2. Hibernate 的查询方式
HQL 查询 : Hibernate Query Language ,
这
是类似于 SQL 语句的对象化查询语句。
Criteria 查询 : 按条件查询 (Query By
Criteria)
简称 QBC 查询
www.sodi.com.cn
- 3. Criteria 的基本使用
...
Hibernate Session 的获取
Transaction tx = session.beginTransaction();
// 创建 Criteria 对象
Criteria criteria =
session.createCriteria(Student.class);
// 加入查询的条件
criteria.add(Restrictions.xxx(...));
// 查询结果
List<Student> stuList = criteria.list();
tx.commit();
Hibernate session 的关闭
...
www.sodi.com.cn
- 4. Criteria 接口的核心方法
方法名 方法描述
add() 增加一个代表查询条件的 Criterion 对象
addOrder() 增加一个代表排序的 Criterion 对象
setFirstResult() 设定要获取的第一条记录的位置
setMaxResults() 设定要获取的记录的最大数量
list() 获取满足查询条件的记录集合
uniqueResult() 获取满足查询条件的唯一记录
createAlias() 创建关联查询,为所关联的持久化类建立别名
createCriteria() 在互相关联的持久化类之间建立条件约束
www.sodi.com.cn
- 5. 操作演示
操作演示
www.sodi.com.cn
- 6. Restrictions 类的主要方法
方法名 方法描述 示例代码
eq() 等于 Restrictions.eq(“price”,new Double(500))
ne() 不相等 Restrictions.ne(“name”,” 张三” )
gt() 大于 Restrictions.gt(“price”,new Double(500))
ge() 大于等于 Restrictions.ge(“price”,new Double(500))
lt() 小于 Restrictions.lt(“price”,new Double(500))
le() 小于等于 Restrictions.le(“price”,new Double(500))
between() 两范围之间 Restrictions.between(“price”,200,500)
www.sodi.com.cn
- 7. Restrictions 类的主要方法
方法名 方法描述 示例代码
in() 对应 SQL 的 in 子 Restrictions.in(“price”,new int[]{100,200,300})
句
like() 对应 SQL 的 like Restrictions.like(“name”,” 张 %”)
子句
ilike() 忽略大小写 like 子 Restrictions.ilike(“name”,”%Rose%”)
句
isNull() 判断是否为空 Restrictions.isNull(“address”)
isNotNull() 判断是否不为空 Restrictions.isNotNull(“address”)
and() 条件与 Restrictions.and(Criterion 条件 1, Criterion 条件 2)
or() 条件或 Restrictions.or(Criterion 条件 1, Criterion 条件 2)
not() 条件非 Restrictions.not(Criterion 条件 )
www.sodi.com.cn
- 8. 操作演示
操作演示
www.sodi.com.cn
- 9. Criteria 的统计函数
...
Hibernate Session 的获取
Transaction tx = session.beginTransaction();
// 创建 Criteria 对象
Criteria criteria =
session.createCriteria(Product.class);
// 加入聚合统计
criteria.setProjection(Projections.max(“price”));
// 查询结果
double maxPrice = (Double)criteria.uniqueResult();
tx.commit();
Hibernate session 的关闭
...
www.sodi.com.cn
- 10. Criteria 的分组查询
...
Hibernate Session 的获取
Transaction tx = session.beginTransaction();
// 创建 Criteria 对象
Criteria criteria =
session.createCriteria(Product.class);
// 加入聚合统计
criteria.setProjection
(Projections.groupProperty(“price”));
// 查询结果
List<Double> prices = criteria.list();
tx.commit();
Hibernate session 的关闭
...
www.sodi.com.cn
- 11. 总结
Hibernate 的查询方式
Criteria 的基本查询结构
Criteria 接口的核心方法
Restrictions 类的主要方法
具体的 Criteria 查询
www.sodi.com.cn