SlideShare a Scribd company logo
Hibernate 框架

      Criteria 查询
Hibernate 的查询方式

 HQL 查询 : Hibernate Query Language ,
 这
   是类似于 SQL 语句的对象化查询语句。

 Criteria 查询 : 按条件查询 (Query By
 Criteria)
    简称 QBC 查询




www.sodi.com.cn
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
Criteria 接口的核心方法

             方法名                  方法描述
    add()              增加一个代表查询条件的 Criterion 对象
    addOrder()         增加一个代表排序的 Criterion 对象
    setFirstResult()   设定要获取的第一条记录的位置
    setMaxResults()    设定要获取的记录的最大数量
    list()             获取满足查询条件的记录集合
    uniqueResult()     获取满足查询条件的唯一记录
    createAlias()      创建关联查询,为所关联的持久化类建立别名
    createCriteria()   在互相关联的持久化类之间建立条件约束




www.sodi.com.cn
操作演示




                  操作演示




www.sodi.com.cn
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
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
操作演示




                  操作演示




www.sodi.com.cn
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
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
总结

    Hibernate 的查询方式
    Criteria 的基本查询结构
    Criteria 接口的核心方法
    Restrictions 类的主要方法
     具体的 Criteria 查询




www.sodi.com.cn
www.sodi.com.cn

More Related Content

Viewers also liked

7 hibernate最佳实践
7 hibernate最佳实践7 hibernate最佳实践
7 hibernate最佳实践Zelin Wang
 
youth civic engagement in social media
youth civic engagement in social mediayouth civic engagement in social media
youth civic engagement in social media
Delta-prosjektet
 
12 hibernate 集合映射
12 hibernate 集合映射12 hibernate 集合映射
12 hibernate 集合映射Zelin Wang
 
Kommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santKommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = sant
Delta-prosjektet
 
9 hibernate 一对多关系映射
9 hibernate 一对多关系映射9 hibernate 一对多关系映射
9 hibernate 一对多关系映射Zelin Wang
 
3 hibernate映射元素和类型
3 hibernate映射元素和类型3 hibernate映射元素和类型
3 hibernate映射元素和类型Zelin Wang
 
VG og unge brukere
VG og unge brukere VG og unge brukere
VG og unge brukere
Delta-prosjektet
 
10 hibernate 多对多关系映射
10 hibernate 多对多关系映射10 hibernate 多对多关系映射
10 hibernate 多对多关系映射Zelin Wang
 
Plan - innovative måter å møte unge på
Plan - innovative måter å møte unge påPlan - innovative måter å møte unge på
Plan - innovative måter å møte unge på
Delta-prosjektet
 

Viewers also liked (9)

7 hibernate最佳实践
7 hibernate最佳实践7 hibernate最佳实践
7 hibernate最佳实践
 
youth civic engagement in social media
youth civic engagement in social mediayouth civic engagement in social media
youth civic engagement in social media
 
12 hibernate 集合映射
12 hibernate 集合映射12 hibernate 集合映射
12 hibernate 集合映射
 
Kommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = santKommune + unge + sosiale medier = sant
Kommune + unge + sosiale medier = sant
 
9 hibernate 一对多关系映射
9 hibernate 一对多关系映射9 hibernate 一对多关系映射
9 hibernate 一对多关系映射
 
3 hibernate映射元素和类型
3 hibernate映射元素和类型3 hibernate映射元素和类型
3 hibernate映射元素和类型
 
VG og unge brukere
VG og unge brukere VG og unge brukere
VG og unge brukere
 
10 hibernate 多对多关系映射
10 hibernate 多对多关系映射10 hibernate 多对多关系映射
10 hibernate 多对多关系映射
 
Plan - innovative måter å møte unge på
Plan - innovative måter å møte unge påPlan - innovative måter å møte unge på
Plan - innovative måter å møte unge på
 

Similar to 16 hibernate criteria查询

Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文Guo Albert
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享晓锋 陈
 
Hibernate
HibernateHibernate
Hibernate
Henry Huang
 
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句   oss 计算技术 - ossez info of tech107个常用javascript语句   oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of tech
YUCHENG HU
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)
振揚 陳
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试lydiafly
 
Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记
zhejiang university
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
otakustay
 
Glider
GliderGlider
Glider
windyrobin
 
面向开发的前端性能优化
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化li qiang
 
Nightwatch101
Nightwatch101Nightwatch101
Nightwatch101
Hsin-Hao Tang
 
9
99
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题yiditushe
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
lotusprince
 
Mysql遇到的一些问题
Mysql遇到的一些问题Mysql遇到的一些问题
Mysql遇到的一些问题
wang tongchao
 
Entity framework 入門第一課
Entity framework 入門第一課Entity framework 入門第一課
Entity framework 入門第一課
Sean Lu
 
Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研lorisjand
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniterChun-Kai Wang
 

Similar to 16 hibernate criteria查询 (20)

Spring 2.x 中文
Spring 2.x 中文Spring 2.x 中文
Spring 2.x 中文
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
 
Hibernate
HibernateHibernate
Hibernate
 
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句   oss 计算技术 - ossez info of tech107个常用javascript语句   oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of tech
 
Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)Http Headers 與 Cache 機制(2016)
Http Headers 與 Cache 機制(2016)
 
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
 
Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记Mdx解决方案(第二版)笔记
Mdx解决方案(第二版)笔记
 
ES5 introduction
ES5 introductionES5 introduction
ES5 introduction
 
Glider
GliderGlider
Glider
 
面向开发的前端性能优化
面向开发的前端性能优化面向开发的前端性能优化
面向开发的前端性能优化
 
Nightwatch101
Nightwatch101Nightwatch101
Nightwatch101
 
9
99
9
 
Java华为面试题
Java华为面试题Java华为面试题
Java华为面试题
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
 
Mysql遇到的一些问题
Mysql遇到的一些问题Mysql遇到的一些问题
Mysql遇到的一些问题
 
Entity framework 入門第一課
Entity framework 入門第一課Entity framework 入門第一課
Entity framework 入門第一課
 
Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研Jdbc4 0 规范技术预研
Jdbc4 0 规范技术预研
 
Structs2簡介
Structs2簡介 Structs2簡介
Structs2簡介
 
Introduction to CodeIgniter
Introduction to CodeIgniterIntroduction to CodeIgniter
Introduction to CodeIgniter
 
Javascript
JavascriptJavascript
Javascript
 

More from Zelin Wang

14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1Zelin Wang
 
13 hibernate 继承映射
13 hibernate 继承映射13 hibernate 继承映射
13 hibernate 继承映射Zelin Wang
 
11 hibernate 组件映射
11 hibernate 组件映射11 hibernate 组件映射
11 hibernate 组件映射Zelin Wang
 
6 事务和并发控制
6 事务和并发控制6 事务和并发控制
6 事务和并发控制Zelin Wang
 
4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构Zelin Wang
 
2 hibernate核心api
2 hibernate核心api2 hibernate核心api
2 hibernate核心apiZelin Wang
 
8 hibernate 一对一关系映射
8 hibernate 一对一关系映射8 hibernate 一对一关系映射
8 hibernate 一对一关系映射Zelin Wang
 
01 orm概述及持久化介绍
01 orm概述及持久化介绍01 orm概述及持久化介绍
01 orm概述及持久化介绍Zelin Wang
 

More from Zelin Wang (8)

14 hibernate hql查询1
14 hibernate hql查询114 hibernate hql查询1
14 hibernate hql查询1
 
13 hibernate 继承映射
13 hibernate 继承映射13 hibernate 继承映射
13 hibernate 继承映射
 
11 hibernate 组件映射
11 hibernate 组件映射11 hibernate 组件映射
11 hibernate 组件映射
 
6 事务和并发控制
6 事务和并发控制6 事务和并发控制
6 事务和并发控制
 
4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构4 hibernate对象管理和缓存结构
4 hibernate对象管理和缓存结构
 
2 hibernate核心api
2 hibernate核心api2 hibernate核心api
2 hibernate核心api
 
8 hibernate 一对一关系映射
8 hibernate 一对一关系映射8 hibernate 一对一关系映射
8 hibernate 一对一关系映射
 
01 orm概述及持久化介绍
01 orm概述及持久化介绍01 orm概述及持久化介绍
01 orm概述及持久化介绍
 

16 hibernate criteria查询

  • 1. 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