更新时间:2024-01-22 来源:黑马程序员 浏览量:
HQL(Hibernate Query Language)是Hibernate查询语言的简称,它是一种面向对象的查询语言,与SQL查询语言有些类似,但它使用的是类、对象和属性的概念,而没有表和字段的概念。
HQL查询与SQL查询相比,具有以下优点。
·直接针对实体类和属性进行查询,不用再编写繁琐的SQL语句。
·查询结果直接保存在List集合中,不用再次封装。
·针对不同的数据库会自动生成不同的SQL语句。
在Hibernate提供的几种检索方式中,HQL是官方推荐的查询语言,也是使用最频繁的一种检索方式,其具有以下主要功能。
·在查询语句中设定各种查询条件。
·支持投影查询,即仅检索出对象的部分属性。
·提供内置聚集函数,如sum()、min()和max()。
·支持分组查询,允许使用group by和having关键字。
·支持分页查询。
·支持子查询,即嵌套查询。
·支持动态绑定参数。
HQL的语法格式与SQL非常相似,并且在Hibernate中专门为HQL提供了一个Query查询接口执行各种复杂的查询语句。HQL的完整语法格式如下所示:
[select/update/delete...] from...[where...] [group by...] [having...] [order by...] [asc/desc]
从上述语法格式中可以看出,HQL查询与SQL查询非常类似。通常情况下,当检索表中的所有数据时,查询语句中可以省略select关键字,其示例如下所示:
String hql="from User";
需要注意的是,上述语句中User表示类名,而不是表名,因此需要区分大小写,而form关键字不区分大小写。