public listlistall(mapmap, int pn, int pagesize)
throws exception
if (!global.isempty(map.get("mmssubject")))
if (!global.isempty(map.get("startmmsdate")))
if (!global.isempty(map.get("endmmsdate")))
if (!global.isempty(map.get("mmsorigno")))
if (!global.isempty(map.get("mmsreceno")))
if (!global.isempty(map.get("mmsstatus")))
// 獲取本地sql語句物件
sqlquery query = getsession().createsqlquery(sb.tostring());
// 設定將sql表的別名和實體類聯絡起來
query.addentity(mmstable.class);
// 分頁**
if (pn > -1 && pagesize > -1)
} // 執行查詢方法,返回結果
listmmslist = query.list();
// 返回執行結果
return mmslist;
} /**
* */
@override
public int countall(mapmap)
throws exception
if (!global.isempty(map.get("mmssubject")))
if (!global.isempty(map.get("startmmsdate")))
if (!global.isempty(map.get("endmmsdate")))
if (!global.isempty(map.get("mmsorigno")))
if (!global.isempty(map.get("mmsreceno")))
if (!global.isempty(map.get("mmsstatus")))
// 獲取本地sql語句物件
sqlquery query = getsession().createsqlquery(sb.tostring());
// 執行查詢方法,返回結果
integer count = integer.valueof(query.uniqueresult().tostring());
return count;
}
hibernate
對本地查詢提供了內建支援,為了把
sql查詢返回的關係資料對映為物件,需要在
sql查詢語句中為字段制定別名。如下面**所示:
string sql=」select cs.id as
,cs.name as
,cs.age as
from customer cs where cs.id=』1』 」;
query query=session.createsqlquery(sql,」c」,customer.class);
以上的程式**將
customer
實體物件的別名設定為c,將
customer
表的別名設定為
cs,欄位的別名必須位於大括號之內。
本地sql
查詢還可以支援連線查詢,如下面的程式**:
string sql=」select , from customer c inner join order o where c.id=o.customer_id」;
query query=session.createsqlquery(sql,
new string,
new class);
list list=query.list();
for(int i=0;i
object objs=(object)list.get(i);
customer customer=(customer)objs[0];
order order=(order)objs[1];
}
值得注意的是以上程式**中
query
的list()
方法返回的結果集中存放的是物件陣列,在物件陣列中成對存放著一對
customer
物件和order
物件。
刪除操作
public void deletemmstable(string msgid)
throws exception
; // 拼裝sql語句
string sql = "delete from mmstable where msgid = ?";
// 執行sql語句
sqlquery query = getsession().createsqlquery(sql);
setparameters(query, paramlist);
query.executeupdate();
}
hibernate4使用原生jdbc進行批處理
在hibernate中,有一級快取session和二級快取sessionfactory這些機制,一方面為編碼提供了便利,同時也會有一些 比如有較大的資料量互動的話,快取反而會降低效率。最近在做乙個有關批量更新的程式,在呼叫session.update 之後,物件會儲存在快取中,如果資料量超過快取的容...
HIBERNATE4原始碼編譯
git gradlew.bat assemble 可跳過測試,否則執行gradlew.bat build的過程中,遇到test出錯會報錯退出 本以為會順利結束,沒想到又報錯了。是符號無法識別轉換的錯誤。在網上搜尋了一番,這個跟系統的區域設定有關。需要改為 英語 英國 我試了英語 美國 居然還是報錯。...
osgi 環境下 hibernate 4 配置
準備將公司的老應用遷移到osgi karaf平台上。很 的一點就是hibernate。這玩意,真是超級麻煩的乙個工程。classload是最頭痛的乙個問題。在hibernate4上利用註冊服務的方式 實現了 classloader的 順便提一句想用hibernate3做reloadclass的同學們...