`

hibernate查询语言hql

阅读更多

hibernate查询语言hql

在hql中关键字不区分大小写,但是属性和类名区分大小写

1、简单属性查询【重要】
 * 单一属性查询,返回结果集属性列表,元素类型和实体类中相应的属性类型一致
 * 多个属性查询,返回的集合元素是对象数组,数组元素的类型和对应的属性在实体类中的类型一致
   数组的长度取决与select中属性的个数
 * 如果认为返回数组不够对象化,可以采用hql动态实例化Student对象
 参见:SimplePropertyQueryTest.java 

2、实体对象查询【重要】
 * N + 1问题,在默认情况下,使用query.iterate查询,有可以能出现N+1问题
   所谓的N+1是在查询的时候发出了N+1条sql语句
   1: 首先发出一条查询对象id列表的sql
   N: 根据id列表到缓存中查询,如果缓存中不存在与之匹配的数据,那么会根据id发出相应的sql语句
 * list和iterate的区别?
  * list每次都会发出sql语句,list会向缓存中放入数据,而不利用缓存中的数据
  * iterate:在默认情况下iterate利用缓存数据,但如果缓存中不存在数据有可以能出现N+1问题
 参见:SimpleObjectQueryTest1.java/SimpleObjectQueryTest2.java
 
3、条件查询【重要】 
 * 可以采用拼字符串的方式传递参数
 * 可以采用 ?来传递参数(索引从0开始)
 * 可以采用 :参数名 来传递参数
 * 如果传递多个参数,可以采用setParamterList方法
 * 在hql中可以使用数据库的函数,如:date_format
 参见:SimpleConditionQueryTest.java  
   
4、hibernate也支持直接使用sql进行查询
 参见:SqlQueryTest.java

5、外置命名查询
 * 在映射文件中采用<query>标签来定义hql
 * 在程序中采用session.getNamedQuery()方法得到hql查询串
 参见:Student.hbm.xml、NameQueryTest.java
 
6、查询过滤器 
 * 在映射文件中定义过滤器参数
 * 在类的映射中使用这些参数
 * 在程序中启用过滤器
 参见:Student.hbm.xml、FilterQueryTest.java
 
7、分页查询【重要】 
 * setFirstResult(),从0开始
 * setMaxResults,每页显示多少条数据
 参见:PageQueryTest.java
    
8、对象导航查询,在hql中采用 . 进行导航【重要】
 参见:ObjectNavQueryTest.java
 
9、连接查询【重要】
 * 内连
 * 外连接(左连接/右连接) 
 参见:JoinQueryTest.java
 
10、统计查询【重要】
 参见:StatQueryTest.java
 
11、DML风格的操作(尽量少用,因为和缓存不同步)
 参见:DMLQueryTest.java

分享到:
评论

相关推荐

    Hibernate查询语言HQL

    Hibernate查询语言HQL

    Hibernate查询语言HQL.PPT

    Hibernate查询语言HQL.PPT

    hibernate查询语言--HQL

    hibernate 查询语言 HQL的使用详解及实例, 个人笔记,适合初学者

    HQL Hibernate查询语言

    HQL Hibernate查询语言,HQL的学习和参考的文档,开发必备。

    Hibernate查询语言(HQL) 语法参考

    HQL中文语法参考, 详细描述hibernate 查询语言的各种语法,是不可多得的HQL中文参考资料!

    Hibernate查询语言(HQL)

    Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。

    hibernate小结

    hibernate映射lazy策略hibernate查询语言hql

    Hibernate学习笔记

    Hibernate 学习笔记 get和load的区别 一对一,一对多,多对多 悲观锁,乐观锁 hibernate查询语言hql hibernate一级缓存、二级缓存 抓取策略

    Hibernate之HQL查询

    HQL查询是一种面向对象的查询语言,其中没有表和字段的概念,只有类、对象和属性的概念,HQL 是应用较为广泛的方式.这是本人对HQL知识点做的一个总结性的练习

    hibernate hql 大全

    此书对Hibernate的查询语言hql进行详细的介绍,用来做工具书还是很不错的。

    Hibernate HQL查询.docx

    Hibernate 配备了一种非常强大的查询语言,这种语言看上去很像 SQL。但是不要被语法结构上的相似所迷惑,HQL 是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态和关联之类的概念。

    HQL:Hibernate Qusery Language

    HQL :是面向对象的查询语言,同SQL有些相似是Hib中最常用的方式。 查询设定各种查询条件。 支持投影查询,检索出对象的部分属性。 支持分页查询,允许使用having和group by 提供内制的聚集函数,sum(),min(),max...

    HQL语法大全,并带有详细的例子

    HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征。HQL查询依赖于Query类,每个Query实例对应一个查询对象,使用HQL查询按 如下步骤进行: (1)获取Hibernate Session对象; (2)编写HQL语句; (3)以HQL...

    Hibernate 查询语言

    HQL:Hibernate Qusery Language,如果你已经熟悉它,就会发现它跟SQL非常相像。不过 你不要被表面的假象迷惑,HQL是面向对象的(OO,用生命的眼光看待每一个对象,他们是如此 鲜活)。如果你对JAVA和SQL语句有一定...

    hibernate中文教材

    Hibernate提供了它特有的数据库查询语言HQL,这种查询语言屏蔽了不同数据库之间的差别,使你可以编写统一的查询语句执行查询。不同于其他持久化解决方案的是Hibernate并没有把SQL的强大功能屏蔽掉,而是仍然兼容SQL...

    HQL查询语言的使用介绍

    HQL是Hibernate Query Language的缩写,语法很想SQL,但是HQL是一种面向对象的查询语言。SQL的操作对象是数据列、表等数据库对象,而HQL操作的是类、实例、属性

Global site tag (gtag.js) - Google Analytics