六. Hibernate的简单查询

1.Hibernate持久化操作完成

C(Create): session.save, session.saveOrUpdate,session.persist

U(Update): session.update, session.saveOrUpdate

D(Delete): session.delete

R(Retrive): session.get : 通过ID属性值,query.getResultList()

2.Hibernate查询机制

1.HQL语言

2.Query接口

3.HQL概念与功能

1.HQL概念:Hibernate Query Languange,是一个查询持久对象的语言。

2.功能:针对持久类和属性查询。

4.HQL语法

与SQL的查询语句语法相同。

1.from子句

1.功能:指定查询的对象的类别

2.语法:

from Model类名

from Model类名 别名

from Model类名 as 别名

案例:

String hql="from BehaveModel ";

String hql="from BehaveModel bm";

String hql="from BehaveModel  as bm";
2.where子句

1.功能:对查询出的对象进行筛选

2.语法:

where 逻辑表达式

3.常见的表达式:

(1)比较运算:

=, >, <, >=, <=, !=, <>

(2)逻辑运算:

and or not

String hql="from EmployeeModel em where em.age>=20 and em.age<=40";

(3)区间运算:
between … and … , not between … and …

案例:

from EmployeeModel em where em.age between20 and 40

from EmployeeModel em where em.age not between20 and 40

(4)模糊运算
like 匹配符, not like 匹配符

案例:

from EmployeeModel em where em.name like '%国%'

from EmployeeModel em where em.name not like '%国_'

(5)集合运算:

in (集合), not in (集合)

案例:

from EmployeeModel em where em.age in (20,30,40)

(6)空运算

is null, is not null, is empty, is not empty

案例:

from EmployeeModel em where em.behaves is empty 


from EmployeeModel em where em.behaves is not empty

5.Query接口的主要方法

1.Query对象的取得:

类型:org.hibernate.query.Query 新版

org.hibernate.Query 旧版

语法:

Query query=session.createQuery(hql,T.class);

案例:

Query query=session.createQuery(hql,BehaveModel.class);

2.常用的方法:

(1)执行HQL返回对象集合

List list=query.getResultList(); //新版

List list=query.list(); //旧版

案例:

List list=query.getResultList();

(2) 执行HQL返回单个对象

T result=query.uniqueResult();

(3)设置HQL参数的方法:

HQL参数类型:

<1>位置参数:

在HQL中使用?,位置从0开始。

from EmployeeModel em where em.age between ? and ?

<2>命名参数:

在HQL中使用 :参数名

from EmployeeModel em where em.age between :min and :max

Query设置参数值方法:

旧版:

query.setXxx(int 位置,Xxx 值); //设置位置参数
query.setXxx(String name,Xxx 值); //设置命名参数

query.setInteger(0, min);
query.setInteger(1, max);

query.setInteger("min", min);
query.setInteger("max", max);

新版:

query.setParameter(int 位置,Xxx 值); //设置位置参数
query.setParameter(String 参数名,Xxx 值); //设置命名参数

(4)设置返回结果位置和个数方法

设定结果的起始位置,从0开始。

query.setFirstResult(int 位置);

设置返回的个数

query.setMaxResults(int 个数);

你可能感兴趣的:(Hibernate)