Spring HQL

HQL(Hibernate Query Language) 是Hibernate框架提供的一种查询机制,它和 SQL 查询语言很相似。不同的是HQL是面向对象的查询语言,让开发者能够以面向对象的思想来编写查询语句,对Java编程来说是很好的一种方式。

但是HQL语言是不能直接与数据库进行交互的,它是中间层的语言,Hibernate框架会将其翻译成底层数据库能够识别的SQL语言,与数据库进行交互。

需要注意的是,HQL语言不能直接进行insert操作,select,delete,update是支持的。

1.实体对象查询  

查询表中的所有数据,自动完成对象封装,返回List集合。

HQL进行查询操作,若省略select关键字,则查询所有字段,from关键字后面不能写表名,必须写数据表对应的实体类名。

2.分页查询

HQL分页查询可以通过调用query的方法来完成。

1.setFirstResult():设置截取的起始下标。

2.setMaxResults():设置截取记录的长度。

3.where条件查询

HQL直接追加where关键字设置查询条件,与SQL没有区别。

4.模糊查询

5.order by

6.group by 

7.group by having

8.查询实体对象的属性

9.占位符

HQL的占位符通过下标进行替换。

需要注意的是HQL中占位符的下标从0开始,JDBC的占位符下标从1开始。

使用query的set*方法来替换变量,根据变量的类型来决定调用哪个方法。

如int类型则调用setInteger(),String类型调用setString()。

10.参数

跟占位符类似,用变量替换HQL语句中的值,需要注意的是在HQL语句中参数名前要加:。

11.级联查询

HQL是面向对象的查询语言,所以不需要通过数据表的外键关联,可直接通过实体类的级联关系进行设置。

相关推荐