這些天過的好亂,也許是因為考完試了,心裡有些鬆懈吧。也許是最近發生的事對我有些觸動
吧。感覺自己都已經不懂自己了。面對一些人的教導,我很感激。因為很多話都對我有非常大的幫助和
啟發,也讓我除了做技術,玩程式設計外,明白了很多道理,也許這就是乙個人成熟的過程吧。我真的很希
望我能夠忘掉以前的不懂事,忘掉以前的輕狂,踏踏實實的做技術。
自己的「真理」有時也會錯,自己的想法有時也很「天真」。我真的很想靜一靜。晚飯後看了
高深的東西。
我很想從現在做起,使自己能夠真正享受程式設計帶來的快樂,沒有虛榮,沒有競爭,沒有雜念。
只有快樂,只有充實,只有無悔。當然我說到做到,那篇日誌講的是乙個從點到面,從面到點的哲理。
我覺得有必要寫乙個hibernate的總結性隨筆,從點到面,講講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
>
>
六種方式實現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推薦
hibernate查詢的6種方法。分別是hql查詢,物件化查詢criteria方法,動態查詢detachedcriteria,例子查詢,sql查詢,命名查詢。如果單純的使用hibernate查詢資料庫只需要懂其中的一項就可以完成想要實現的一般功能,但是 從乙個點,讓我們掌握6中方法,則提供了更多選擇...