成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細描述Hibernate3實踐

開發 后端
這里介紹Hibernate3實踐,Hibernate不是盞省油的燈,也不是想像的射來射去很簡單的事,有很多細節處理不好會讓你很不舒服的。

在向大家詳細介紹Hibernate3實踐之前,首先讓大家了解下Session的save()、persist()、update()、saveOrUpdate()、merge()、delete()方法。

Hibernate3實踐

Hibernate不是盞省油的燈,也不是想像的射來射去很簡單的事。有很多細節處理不好會讓你很不舒服的,這方面最突出的表現在兩方面:一是事務管理,是JTA事務還是 JDBC事務?幸虧有了Spring和J2EE容器;二是胡亂映射,模型關系建立不合理或者錯誤導致,或者是映射策略和技術不過關導致。這樣的最終結果是拋出一堆HibernateException,摸不著頭腦。下面是我實踐中的一些總結作為備忘錄寫出來。

參考的是***的Hibernate 3.2.6GA API文檔,還吸收了Hibernate牛人(夏新)寫的書和翻譯中文開發手冊的精華。

1、Configuration/SessionFactory/Session

Configuration實例代表了一個應用程序中Java類型 到SQL數據庫映射的完整集合. Configuration被用來構建一個(不可變的 (immutable))SessionFactory.
◆SessionFactory是線程安全的,創建代價很高。
◆Session是非線程安全的,輕量級的。一個Session對應一個JDBC連接,
◆Session的connection()會獲取Session與之對應的數據庫連接Connection對象。
◆Session的功能就是操作對象的,這些對象和數據庫表有映射關系。
◆Session操作的對象是有狀態的,分三類:
1)自由狀態(transient): 未持久化,未與任何Session相關聯,數據庫表中沒有對應的記錄。
2)持久化狀態(persistent): 與一個Session相關聯,對應數據庫表中一條記錄。
3)游離狀態(detached): 已經進行過持久化,但當前未與任何Session相關聯,數據庫表中曾經有一條記錄,現在還有沒有就不知道了。

游離狀態的實例可以通過調用save()、persist()或者saveOrUpdate()方法進行持久化。持久化實例可以通過調用 delete()變成游離狀態。通過get()或load()方法得到的實例都是持久化狀態的。游離狀態的實例可以通過調用 update()、0saveOrUpdate()、lock()或者replicate()進行持久化。游離或者自由狀態下的實例可以通過調用 merge()方法成為一個新的持久化實例。

2、Session的save()/persist()/update()/saveOrUpdate()/merge()/delete()方法

◆save()方法將指定對象保存,插入表中一條數據;
◆persist()方法將指定對象保存,插入表中一條數據,我還沒發現它和save方法有什么特別之處。
◆replicate()方法完全使用給定對象各個屬性的值(包括標識id)來持久化給定的游離狀態(Transient)的實體,很暴力啊,其中還需要指定存儲模式(有四種保存策略供選擇)。
◆update()方法將指定對象更新,更新表中一條數據;
◆saveOrUpdate()方法接收一個實體對象,根據實體對象的id判斷是否已經存在進行保存或更新操作,這樣保存和更新方法就統一了;
◆merge()方法將給定的對象的狀態復制到具有相同標識的持久化對象上。
◆delete()方法將指定對象刪除,刪除表中一條數據;

特別注意:為了使用saveOrUpdate()方法,在由定義映射文件時,通過設定<id>標簽的unsaved- value="null"來判斷執行什么操作:當id屬性等于unsaved-value的值(在此為null)時,則認為還沒有保存,應該執行保存操作,否則執行更新操作。這樣設定之后,可以使用 saveOrUpdate()方法來統一保存和更新的方法。以上是Hibernate3實踐

【編輯推薦】

  1. Hibernate類庫簡單描述
  2. 淺析Hibernate延遲加載
  3. Spring Hibernate簡單討論
  4. 介紹Hibernate版本的更新
  5. 簡單講述Hibernate實例
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-24 16:19:53

Hibernate應用

2009-09-25 14:28:40

Hibernate S

2009-09-14 16:33:55

LINQ To XML

2009-09-14 13:14:49

LINQ序列

2009-09-14 14:58:52

LINQ to XML

2009-11-18 11:14:49

2010-02-05 16:58:18

Android服務

2009-06-17 09:17:41

Hibernate3

2009-08-26 15:53:48

C#擴展方法

2009-08-27 15:17:40

C# const變量

2009-09-07 15:15:43

2009-10-10 10:04:50

RHEL合法使用

2009-08-10 16:40:03

C#索引器

2009-09-08 11:09:39

LINQ數據源

2010-04-09 17:45:06

Oracle索引

2009-10-15 14:59:45

網絡布線光纖技術

2009-09-24 10:22:38

Hibernate3新

2009-09-03 17:59:18

C#調用事件

2011-11-02 09:29:42

存儲虛擬化虛擬化

2009-10-16 11:02:40

VB調用動態連接庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99热首页 | 精品91av| 国产在线高清 | 在线免费观看一区二区 | 在线观看视频一区二区三区 | 久久久国产网站 | 国产一区二区 | 成人在线免费观看av | 精品国产91 | 国产精品1区2区 | 国产成人久久精品一区二区三区 | 国产精品久久 | 欧美在线一区二区视频 | 99这里只有精品视频 | 国产精品成人69xxx免费视频 | 国产精品夜间视频香蕉 | 日日精品 | 国产在线观看免费 | 小视频你懂得 | 小h片免费观看久久久久 | 色眯眯视频在线观看 | 在线成人 | 欧美一区二区三区在线 | 久久99国产精一区二区三区 | 国产黄色小视频在线观看 | 久久国品片| 久久精品| 久久精品色欧美aⅴ一区二区 | 欧美成人精品激情在线观看 | 久久久久无码国产精品一区 | 鲁大师一区影视 | 在线观看免费国产 | 日韩av在线一区二区三区 | 亚洲一区二区 | 欧美精品一二三 | 国产精品av久久久久久毛片 | 青青久久| 在线视频 亚洲 | 最新超碰| 国产a视频 | 岛国视频 |