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毛片免费观看网站
|
成年人网站在线免费观看
|
亚洲图片中文字幕
|
西西人体免费视频
|
免费永久国产在线视频
|
亚洲AV无码一区二区三区网址
|
夭天干天天做天天免费看
|
豆国产96在线|亚洲
|
毛片免费观看的视频
|
亚洲欧洲专线一区
|
五月婷婷亚洲综合
|
亚洲heyzo专区无码综合
|
免费观看国产小粉嫩喷水
|
国产大片免费天天看
|
亚洲av无码成人精品区
|
一级毛片免费不卡直观看
|
免费v片视频在线观看视频
|
国产成人亚洲综合网站不卡
|
无码人妻精品中文字幕免费
|
4338×亚洲全国最大色成网站
|
亚洲国产精品无码久久98
|
精品一区二区三区高清免费观看
|
无码国产精品一区二区免费式直播
|
国精无码欧精品亚洲一区
|
深夜福利在线视频免费
|
亚洲精品岛国片在线观看
|
免费人成网站永久
|
亚洲电影中文字幕
|
永久黄网站色视频免费直播
|
中国一级特黄的片子免费
|
亚洲制服丝袜在线播放
|
色播精品免费小视频
|
亚洲一区二区免费视频
|
欧美日韩国产免费一区二区三区
|
国产成人亚洲午夜电影
|
亚洲日本在线观看
|