apple0668
TDD,Agile,Scrum,Core Java,J2EE,Investment Blank
BlogJava
首頁
新隨筆
聚合
管理
隨筆-61 評論-159 文章-0 trackbacks-0
系統(tǒng)學(xué)習(xí)hibernate之二:Session中l(wèi)oad和get
用hibernate的ORM框架有一段時間了,現(xiàn)在來回顧一下Seesion中的load和get。
一、
get不支持lazy,load支持lazy。
二、采用get加載數(shù)據(jù),如果沒有匹配的數(shù)據(jù),返回null,而load則拋出異常。
get的例子:
1
public
void
testGetMethod()
{
2
Session session
=
null
;
3
try
{
4
session
=
HibernateUtils.getSession();
5
session.beginTransaction();
6
7
//
馬上發(fā)出查詢sql,加載User對象
8
User user
=
(User)session.get(User.
class
,
"
402880d01b9bf210011b9bf2c2ff0002
"
);
9
System.out.println(
"
user.name=
"
+
user.getName());
10
11
user.setName(
"
張三
"
);
12
session.getTransaction().commit();
13
}
catch
(Exception e)
{
14
e.printStackTrace();
15
session.getTransaction().rollback();
16
}
finally
{
17
HibernateUtils.closeSession(session);
18
}
19
}
PS:在執(zhí)行第8行語句的時候,如果數(shù)據(jù)庫有相關(guān)的記錄,則立刻發(fā)出sql語句,即使是沒有第9行中user.getName()方法調(diào)用,如果沒有匹配的記錄則返回來一個null。
load方法例子:
1
public
void
testLoadMethod()
{
2
Session session
=
null
;
3
try
{
4
session
=
HibernateUtils.getSession();
5
session.beginTransaction();
6
7
//
不會發(fā)出查詢sql,因為load方法實現(xiàn)了lazy(懶加載或延遲加載)
8
//
延遲加載:只有真正使用這個對象的時候,才加載(發(fā)出sql語句)
9
//
hibernate延遲加載實現(xiàn)原理是代理方式
10
User user
=
(User)session.load(User.
class
,
"
402880d01b9bf210011b9bf2b2ff0002
"
);
11
System.out.println(
"
user.name=
"
+
user.getName());
12
user.setName(
"
李四
"
);
13
session.getTransaction().commit();
14
}
catch
(Exception e)
{
15
e.printStackTrace();
16
session.getTransaction().rollback();
17
}
finally
{
18
HibernateUtils.closeSession(session);
19
}
20
}
PS:在執(zhí)行到10句代碼的時候并沒有立刻發(fā)出sql語句,由于load實現(xiàn)了lazy延遲加載,延遲加載只有真正使用該對象的時候才進行加載,發(fā)出sql語句,關(guān)鍵是11句代碼。如果load方法里面的id在數(shù)據(jù)庫表里面沒有相關(guān)的,則會發(fā)出
ObjectNotFoundException
異常。
PSPS:可以通過設(shè)置斷點,用debug來跟蹤相關(guān)變量跟對象的改變,這樣就可以很清晰理解load和get這兩個方法。
-------------------------------------------------------------------------------------------------
PS:本博客文章,如果沒有注明是有“轉(zhuǎn)”字樣,屬于本人原創(chuàng)。如果需要轉(zhuǎn)載,務(wù)必
注明作者
和
文章的詳細出處地址
,否則不允許轉(zhuǎn)載,多謝合作!
posted on 2008-10-09 20:38
apple0668
閱讀(446)
評論(0)
編輯
收藏
所屬分類:
hibernate
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
系統(tǒng)學(xué)習(xí)hibernate之十五:hibernate一級緩存
系統(tǒng)學(xué)習(xí)hibernate之十四:hibernate中HQL查詢語言(二)
系統(tǒng)學(xué)習(xí)hibernate之十三:hibernate中HQL查詢語言(一)
系統(tǒng)學(xué)習(xí)hibernate之十二:hibernate中悲觀鎖和樂觀鎖
系統(tǒng)學(xué)習(xí)hibernate之十一:set、list、map、array集合
系統(tǒng)學(xué)習(xí)hibernate之十:Component映射
系統(tǒng)學(xué)習(xí)hibernate之九:多對多關(guān)聯(lián)映射(雙向)
系統(tǒng)學(xué)習(xí)hibernate之八:多對多關(guān)聯(lián)映射(單向)
系統(tǒng)學(xué)習(xí)hibernate之七:一對多單向關(guān)聯(lián)
系統(tǒng)學(xué)習(xí)hibernate之六:一對一外鍵關(guān)聯(lián)映射雙向關(guān)聯(lián)
Email:
chensp1230@163.com
歡迎交流
框架是告訴人們不該去做什么,而不是告訴人們該去做什么;容器是告訴人們該去做什么,而不是告訴人們不該去做什么!
<
2008年10月
>
日
一
二
三
四
五
六
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
留言簿
(10)
給我留言
查看公開留言
查看私人留言
我參與的團隊
深圳Java俱樂部(0/0)
Netbeans 愛好者(0/0)
隨筆分類
(63)
Aglets(1)
drools(2)
eclipse(6)
groovy
hibernate(17)
java(7)
jboss
junit(3)
Log4(2)
MongoDB(1)
oracle(1)
spring(4)
struts2(8)
svn(1)
tomcat(4)
webwork(4)
web報表(1)
xml
心情港灣
集群(1)
隨筆檔案
(61)
2015年3月 (1)
2012年7月 (1)
2012年4月 (1)
2011年5月 (3)
2010年1月 (2)
2009年3月 (1)
2008年12月 (2)
2008年11月 (5)
2008年10月 (16)
2008年9月 (1)
2008年4月 (1)
2008年1月 (2)
2007年11月 (2)
2007年10月 (15)
2007年9月 (8)
友情鏈接
開源在線手冊
最新隨筆
1.?Ehcache集群方案
2.?MongoDB安裝手記
3.?任何人都可以重構(gòu)<轉(zhuǎn)載>
4.?JDK6中JWS自帶webservice應(yīng)用
5.?解決:Eclipse啟動tomcat 訪問不了 手動啟動可以訪問
6.?IntelliJ Idea10 常用快捷鍵
7.?Drools語法詳解<轉(zhuǎn)>
8.?eclipse3.4安裝drools插件手記
9.?Java日期時間運算
10.?java中使用功能強悍的正則表達式
搜索
最新評論
1.?re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記
非常感謝樓主分享,解決問題, Tomcat 7.0.59
--Gozs
2.?re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記[未登錄]
正解
--gao
3.?re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記
@123
已解決,謝謝提示myeclipse相關(guān)的有用信息~~
--sequoah
4.?re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記
贊 清空work文件夾就可以了
--維尼
5.?re: Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記
很好 問題解決了!
--兔兔
閱讀排行榜
1.?Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記(85541)
2.?系統(tǒng)學(xué)習(xí)hibernate之一:利用hibernate中的SchemaExport生成數(shù)據(jù)表(18641)
3.?eclipse的第一個struts2插件:Alveole Studio MVC Web Project An eclipse plugin for Struts 2(15692)
4.?Subversion之路---實現(xiàn)精細的目錄訪問權(quán)限控制<轉(zhuǎn)>(11308)
5.?IntelliJ Idea10 常用快捷鍵(9321)
評論排行榜
1.?Tomcat:IOException while loading persisted sessions: java.io.EOFException解決手記(62)
2.?eclipse的第一個struts2插件:Alveole Studio MVC Web Project An eclipse plugin for Struts 2(32)
3.?Tomcat啟動端口被占用異常處理(9)
4.?升級瑞星防火墻2008后,在myeclipse6.0中啟動tomcat遇到怪問題!(7)
5.?JDK6中JWS自帶webservice應(yīng)用(6)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 apple0668
主站蜘蛛池模板:
亚洲AV人无码激艳猛片
|
免费无码A片一区二三区
|
www成人免费观看网站
|
国产亚洲日韩在线a不卡
|
亚洲av无码有乱码在线观看
|
午夜在线a亚洲v天堂网2019
|
亚洲精品人成网在线播放影院
|
亚洲人成人网毛片在线播放
|
国产99在线|亚洲
|
亚洲国产成人99精品激情在线
|
亚洲国产成人久久99精品
|
亚洲av无码国产综合专区
|
亚洲一级毛片免费观看
|
亚洲不卡影院午夜在线观看
|
亚洲熟妇少妇任你躁在线观看
|
亚洲欧美日韩中文字幕一区二区三区
|
色噜噜亚洲男人的天堂
|
成人区精品一区二区不卡亚洲
|
亚洲第一区二区快射影院
|
亚洲s码欧洲m码吹潮
|
免费国产黄网站在线观看动图
|
国产亚洲真人做受在线观看
|
国产∨亚洲V天堂无码久久久
|
久久国产精品亚洲综合
|
亚洲欧洲精品一区二区三区
|
亚洲欧洲国产视频
|
亚洲欧美日韩一区二区三区
|
农村寡妇一级毛片免费看视频
|
国产99视频精品免费视频76
|
毛片在线全部免费观看
|
日本免费xxxx
|
国产大片91精品免费看3
|
亚洲人色婷婷成人网站在线观看
|
亚洲成av人影院
|
亚洲熟妇无码爱v在线观看
|
亚洲色大网站WWW永久网站
|
日本视频免费观看
|
a级在线观看免费
|
91网站免费观看
|
国产一级理论免费版
|
久久91亚洲人成电影网站
|