apple0668
TDD,Agile,Scrum,Core Java,J2EE,Investment Blank
BlogJava
首頁
新隨筆
聚合
管理
隨筆-61 評論-159 文章-0 trackbacks-0
系統學習hibernate之二:Session中load和get
用hibernate的ORM框架有一段時間了,現在來回顧一下Seesion中的load和get。
一、
get不支持lazy,load支持lazy。
二、采用get加載數據,如果沒有匹配的數據,返回null,而load則拋出異常。
get的例子:
1
public
void
testGetMethod()
{
2
Session session
=
null
;
3
try
{
4
session
=
HibernateUtils.getSession();
5
session.beginTransaction();
6
7
//
馬上發出查詢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:在執行第8行語句的時候,如果數據庫有相關的記錄,則立刻發出sql語句,即使是沒有第9行中user.getName()方法調用,如果沒有匹配的記錄則返回來一個null。
load方法例子:
1
public
void
testLoadMethod()
{
2
Session session
=
null
;
3
try
{
4
session
=
HibernateUtils.getSession();
5
session.beginTransaction();
6
7
//
不會發出查詢sql,因為load方法實現了lazy(懶加載或延遲加載)
8
//
延遲加載:只有真正使用這個對象的時候,才加載(發出sql語句)
9
//
hibernate延遲加載實現原理是代理方式
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:在執行到10句代碼的時候并沒有立刻發出sql語句,由于load實現了lazy延遲加載,延遲加載只有真正使用該對象的時候才進行加載,發出sql語句,關鍵是11句代碼。如果load方法里面的id在數據庫表里面沒有相關的,則會發出
ObjectNotFoundException
異常。
PSPS:可以通過設置斷點,用debug來跟蹤相關變量跟對象的改變,這樣就可以很清晰理解load和get這兩個方法。
-------------------------------------------------------------------------------------------------
PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必
注明作者
和
文章的詳細出處地址
,否則不允許轉載,多謝合作!
posted on 2008-10-09 20:38
apple0668
閱讀(446)
評論(0)
編輯
收藏
所屬分類:
hibernate
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
系統學習hibernate之十五:hibernate一級緩存
系統學習hibernate之十四:hibernate中HQL查詢語言(二)
系統學習hibernate之十三:hibernate中HQL查詢語言(一)
系統學習hibernate之十二:hibernate中悲觀鎖和樂觀鎖
系統學習hibernate之十一:set、list、map、array集合
系統學習hibernate之十:Component映射
系統學習hibernate之九:多對多關聯映射(雙向)
系統學習hibernate之八:多對多關聯映射(單向)
系統學習hibernate之七:一對多單向關聯
系統學習hibernate之六:一對一外鍵關聯映射雙向關聯
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.?任何人都可以重構<轉載>
4.?JDK6中JWS自帶webservice應用
5.?解決:Eclipse啟動tomcat 訪問不了 手動啟動可以訪問
6.?IntelliJ Idea10 常用快捷鍵
7.?Drools語法詳解<轉>
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相關的有用信息~~
--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解決手記(85539)
2.?系統學習hibernate之一:利用hibernate中的SchemaExport生成數據表(18640)
3.?eclipse的第一個struts2插件:Alveole Studio MVC Web Project An eclipse plugin for Struts 2(15690)
4.?Subversion之路---實現精細的目錄訪問權限控制<轉>(11308)
5.?IntelliJ Idea10 常用快捷鍵(9320)
評論排行榜
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應用(6)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 apple0668
主站蜘蛛池模板:
91成人免费在线视频
|
无码av免费网站
|
免费观看男人免费桶女人视频
|
亚洲黄色在线电影
|
18未年禁止免费观看
|
亚洲国产视频一区
|
美女视频黄的全免费视频网站
|
青青免费在线视频
|
人妻免费一区二区三区最新
|
999在线视频精品免费播放观看
|
亚洲国产精久久久久久久
|
日韩视频免费在线观看
|
亚洲好看的理论片电影
|
久久WWW免费人成一看片
|
亚洲国产精品乱码在线观看97
|
2021国产精品成人免费视频
|
亚洲精品天堂成人片AV在线播放
|
午夜色a大片在线观看免费
|
涩涩色中文综合亚洲
|
国产免费av片在线无码免费看
|
校园亚洲春色另类小说合集
|
一级女性全黄生活片免费看
|
久久久久久久亚洲精品
|
a毛片在线免费观看
|
亚洲A∨午夜成人片精品网站
|
又大又硬又粗又黄的视频免费看
|
337p日本欧洲亚洲大胆裸体艺术
|
亚洲熟妇无码av另类vr影视
|
99在线免费观看视频
|
亚洲国产系列一区二区三区
|
大胆亚洲人体视频
|
可以免费观看的毛片
|
亚洲第一区二区快射影院
|
国产免费小视频在线观看
|
爱丫爱丫影院在线观看免费
|
亚洲国产电影在线观看
|
亚洲国产成人久久笫一页
|
色欲国产麻豆一精品一AV一免费
|
亚洲色无码专区一区
|
亚洲大尺度无码无码专区
|
成人无码区免费视频观看
|