六. 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<T> query=session.createQuery(hql,T.class);

案例:

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

2.常用的方法:

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

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

List<T> list=query.list(); //旧版

案例:

List<BehaveModel> 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 个数);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值