自己学习心得:HQL数据查询基础

点击打开链接

1:HQL定义:

1.HQL---Hibernate Query Language,HIbernate的查询语言
2.HQL是面向对象的查询语言,面向的是映射配置的持久化类及其属性,而SQL面向的数据库表

3.Hibernate框架最终会将HQL语句解析成SQL语句来完成数据库操作

2:HQL语句形式:
1.select...from...where...group by...having...order by...
2.from子句不可或缺,一个最简单的HQL语句形式只有一个from子句即可

3:初学HQL注意的问题:
1.HQL是面向对象的查询语句,对Java类与属性大小写敏感
2.HQL对关键字不区分大小写,习惯上一律小写

4:Query接口简介:
1.org.hibernate.Query接口定义有执行查询的方法:
2.Query接口支持方法链编程风格,使得程序代码更为简洁(方法链编程:调用方法后,返回的结果依然是调用这个方法的对象)
3.Query实例的创建:
a.Session的createQuery()方法创建Query实例
b.createQuery方法包含一个HQL语句参数,createQuery(hql)
4.Query执行查询
a.Query接口的list()方法执行HQL查询
b.list()方法返回结果数据类型为java.util.List,List集合中存放符合查询条件的持久化对象

5:HQL语句最简形式
HQL:from
SQL:select from

6:from子句中持久化类的引用:
1.不需要引入持久化类的权限定名,直接引入类名
2.auto-import(自动引入)缺省情况,Hibernate会根据映射配置文件自动完成持久化类的导入

7:from子句中别名的引用:
1.为被查询的类指定别名
2.在HQL语句其他部分通过别名引用该类
3.别名命名习惯,参考Java变量的命名习惯

8:1、String hql="select id,name from Test1 as s ";
2、String hql="select s.id,s.name from Test1 as s ";

Ps1:别名使用不是必须的,但是后期多个表结合起来时,避免多个表中有字段名重复,推荐还是养成别名操作的习惯。
Ps2:当只查询一个属性时,即select 只有一个的时候,返回的类型是对象类型,而不是对象数组。

9:比较运算
1.=、<>、<、>、>=、<=
2.null值判断--is [not] null

10:在标准sql语句中 判断null只能使用is null 或者 is not null来判断,而在hql语句中,允许我们使用 = null来判断,这样的话,他会帮我们装换成sql语句中的is null。

11:范围运算
1.[not] in 列表
2.[not] between 值1 and 值2

12:字符串模式匹配
1.like关键字
2.通配符 %、_
%:任意个字符
_:一个字符

13:uniqueResult方法返回一个值,如果返回大于一个,会抛出异常

14:

你可能感兴趣的:(自己学习心得:HQL数据查询基础)