hibernate的4種查詢方法中並不全部常用請按照個人的專案要求進行修改
ps:以下方法名均為本人自擬請勿用於正式檔案
本方法是利用已知的查詢內容,在entity(實體類所在package)層新建一實體類來儲存查詢內容。
例如:有兩個實體類,班級和學校,其中學校對班級為一對多關係
//hibernate hql語句 tclass 為實體類名
string hql = "from tclass t inner join t.school"
; //classes為新建的實體類,其中含有要查詢的學校與班級的
listlist = new arraylist();
//資料庫連線語句
session session = hibernatesessionfactory.getsession();
//執行hql語句獲得查詢結果
query q = session.createquery(hql);
//將查詢結果進行迭代處理
iterator it = q.iterate();
//獲取迭代器返回值,並對classes進行賦值處理,最後將classes存集合當中
while(it.hasnext())
此後獲取list 的返回值進行輸出,此方法利用hibernate的懶載入機制
優點:清楚明了的顯示你需要的字段的資料
缺點:過程繁瑣,**復用性差
此方法是利用實體類中已有的連線方法進行賦值輸出
例如:有兩個實體類,班級和學校,其中學校對班級為一對多關係
//hibernate hql語句 tclass 為實體類名
string hql = "from tclass t inner join t.school";
listlist = new arraylist();
//資料庫連線語句
session session = hibernatesessionfactory.getsession();
//執行hql語句獲得查詢結果
query q = session.createquery(hql);
//將查詢結果進行迭代處理
iterator it = q.iterate();
//獲取迭代器返回值,直接將school新增到tclass中已經存在的get方法中
while(it.hasnext())
此後獲取list 的返回值進行輸出
優點:**內容明顯清楚
缺點:依舊使用hibernate 的懶載入機制
此方法是利用實體類中已有的連線方法直接進行輸出
例如:有兩個實體類,班級和學校,其中學校對班級為一對多關係
//hibernate hql語句 tclass 為實體類名
string hql =
"from tclass t inner join fetch t.school";
list
list
=new arraylist();
//資料庫連線語句
session session = hibernatesessionfactory.getsession();
//執行hql語句獲得查詢結果
query q = session.createquery(hql);
//直接返回集合
return q.
list();
此後獲取list 的返回值進行輸出
優點:**內容明顯清楚,不經過hibernate懶載入機制,提高了**的效率
此方法是利用實體類中已有的連線方法直接進行輸出
例如:有兩個實體類,班級和學校,其中學校對班級為一對多關係
//hibernate hql語句 tclass 為實體類名
string hql =
"from tclass";
list
list
=new arraylist();
//資料庫連線語句
session session = hibernatesessionfactory.getsession();
//執行hql語句獲得查詢結果
query q = session.createquery(hql);
//直接返回集合
return q.
list();
此後獲取list 的返回值進行輸出
優點:**內容明顯清楚
缺點:使用hibernate懶載入機制
hibernate多表查詢
在沒有使用select的時候,返回的是乙個 student物件,否則返回的是乙個物件陣列 object ilist userlist session.find from testmssql.student as student where student.name 張三 nhibernate.nhi...
Hibernate之多表查詢
原生sql多表查詢 1.交叉連線 笛卡爾積 select from a,b 2.內連線 1 隱式內連線 select from a,b where b.aid a.id 2 顯示內連線 select from a inner join b on b.aid a.id 3.外鏈結 1 左外連線 sel...
hibernate多表查詢HQL
innerjoin 內連線 left outerjoin 左外連線 right outerjoin 右外連線 fulljoin 全連線,並不常用 sql中的條件用on即 leftjoin.on.hql中的條件用with即 leftjoin.with.語句innerjoin,left outerjoi...