六. 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 個數);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章