六種方式實現hibernate查詢,及IDE推薦

2021-07-07 03:10:52 字數 1902 閱讀 4523

hibernate查詢的6種方法。分別是hql查詢,物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢

如果單純的使用hibernate查詢資料庫只需要懂其中的一項就可以完成想要實現的一般功能,但是

從乙個點,讓我們掌握6中方法,則提供了更多選擇。每一種方法都有其適用的情況與前提。

hql查詢

hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例**:

static

void

query(string name)

}finally

}適用情況:常用方法,比較傳統,類似jdbc。缺點:新的查詢語言,適用面有限,僅適用於hibernate框架。

物件化查詢criteria方法

static

void

cri(string name,string password)

}finally

}適用情況:物件導向操作,革新了以前的資料庫操作方式,易讀。缺點:適用面較hql有限。

動態分離查詢detachedcriteria

static

list dc(detachedcriteria dc) 

detachedcriteria dc 

=detachedcriteria.forclass(user.

class

);int

id =1;

if(id !=0

)dc.add(restrictions.eq("id

", id));

date age 

=new

date();

if(age 

!=null

)dc.add(restrictions.le(

"birthday

", age));

list users 

=dc(dc);

system.out.println(

"離線查詢返回結果:"+

users);

適用情況:物件導向操作,分離業務與底層,不需要字段屬性攝入到dao實現層。  缺點:適用面較hql有限。

例子查詢

static

list example(user user) 

sql查詢

static

list sql() 

適用情況:不熟悉hql的朋友,又不打算轉資料庫平台的朋友,萬能方法   缺點:破壞跨平台,不易維護,不物件導向。

命名查詢

static

list namedquery(

intid) 

xml version="1.0" encoding="utf-8"

?>

>

<

>

<

class 

name

="com.sy.vo.user"

table

="user"

catalog

="news"

>

class

>

<

query 

name

="getuserbyid"

>

from user where id=:id

]]>

query

>

>

適用情況:萬能方法,有點像ibatis輕量級框架的操作,方便維護。  缺點:不物件導向。基於hql和sql,有一定缺陷。

六種方式實現hibernate查詢

hibernate查詢的6種方法。分別是hql查詢 物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢。1 hql查詢 hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例 static void query ...

六種方式實現hibernate查詢

hql查詢 hql是hibernate自己的一套查詢語言,於sql語法不同,具有跨資料庫的優點。示例 static void query string name finally 適用情況 常用方法,比較傳統,類似jdbc。缺點 新的查詢語言,適用面有限,僅適用於hibernate框架。物件化查詢cr...

六種方式實現hibernate查詢,及IDE推薦

這些天過的好亂,也許是因為考完試了,心裡有些鬆懈吧。也許是最近發生的事對我有些觸動 吧。感覺自己都已經不懂自己了。面對一些人的教導,我很感激。因為很多話都對我有非常大的幫助和 啟發,也讓我除了做技術,玩程式設計外,明白了很多道理,也許這就是乙個人成熟的過程吧。我真的很希 望我能夠忘掉以前的不懂事,忘...