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
主站蜘蛛池模板:
国产情侣激情在线视频免费看
|
人妻免费久久久久久久了
|
蜜桃视频在线观看免费视频网站WWW
|
免费国产精品视频
|
色窝窝亚洲av网
|
亚洲成av人片天堂网老年人
|
成人一级免费视频
|
亚洲人成在线播放网站
|
日韩免费的视频在线观看香蕉
|
亚洲人成电影福利在线播放
|
亚洲视频免费一区
|
亚洲日本成本人观看
|
午夜国产羞羞视频免费网站
|
免费人成网上在线观看
|
亚洲精品无码久久久影院相关影片
|
中文字幕在线免费播放
|
亚洲一区影音先锋色资源
|
曰批视频免费30分钟成人
|
亚洲精品无码av中文字幕
|
亚洲日韩人妻第一页
|
久久免费精品视频
|
亚洲的天堂av无码
|
日本免费一二区在线电影
|
国产精品免费看久久久香蕉
|
亚洲第一视频网站
|
午夜毛片不卡高清免费
|
日韩免费在线中文字幕
|
香蕉视频在线观看亚洲
|
成人免费视频一区二区三区
|
一级**爱片免费视频
|
亚洲日本视频在线观看
|
免费萌白酱国产一区二区
|
免费毛片a线观看
|
亚洲欧洲日韩极速播放
|
亚洲中文字幕丝袜制服一区
|
91精品免费不卡在线观看
|
亚洲欧美国产日韩av野草社区
|
亚洲伊人久久精品影院
|
久久久久免费看黄A片APP
|
久久久久女教师免费一区
|
久久精品国产亚洲AV久
|