Java, Only Java!

          統計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          Hibernate_Gossip學習筆記

          * 米小國 * 奇想世界☆.╯http://www.caterpillar.onlyfun.net/phpBB2/ 里面下載的“Hibernate Gossip - 簡介Hibernate”
          這個里面提供了Hibernate的基礎知識,步驟又是循序漸進,再把例子做完,估計對Hibernate應該有個比較初步的認識,并可以在項目中運用了。
          1 是本好書,入門看懂,例子做完,這是基本。而且,在使用Hibernate的過程中,還可以回過頭再看看入門,內容組織得比較有層次感,只是因為是臺灣同胞寫的,讀起來不容易適應,因此對Hibernate有些熟悉后重讀,就可以屏蔽掉語言上的差異性,更多理解文章內涵。
          × Hibernate是ORM(Object/Relational Mapping)的解決方案。
          × Hibernate所需要的類別庫
          × 提供JDBC連接

          2 繼承映射:父類與子類
          × 每個對象一張表,各自單獨映射。這樣映射方便,但是有重復數據,不能多態操作。
          × 所有對象一張表,有個字段專門用于區別對象;
          × 每個對象一張表,共享主鍵,除主鍵外沒有重復數據,子類屬性通過父類擴展查詢。

          3 集合映射:主要是提供這幾種方式下Hibernate如何處理,都是對象中嵌入對象。
          × Component映射、Set映射、List映射、Map映射
          × Set與Map排序:可以使用Java排序,也可以使用DB排序。
          × Component中集合映射:就是對象中有集合,集合中再存儲對象。
          × Hibernate對象的三種狀態:暫存(Transient)、持久(Persistent)、分離(Detached)
          ?在Java中使用new創造的對象,就是暫存的,?暫存對象執行save()或saveOrUpdate()就是持久的;
          ?持久對象總是與session和transaction相關聯,持久對象執行delete()就會回到暫存的;
          ?當session執行close(), clear(), evict()之后,對象就會變成分離的。
          ?分離對象擁有id,執行update(), saveOrUpdate(), lock()之后,對象就會重新變成持久的。
          × 對象的比較。==, equals(), hashCode()

          4 實體映射:(章節設計是否有問題。因為映射就是四種:一對一、一對多、多對一、多對多。其他重要功能:持久化、瀑布持久化、雙向關聯與inverse設定。)
          × 多對一映射?× 一對多映射?× 一對一映射?× 多對多映射
          × Cascade Persistent/瀑布持久化:父類持久化后,子類應自動持久化。
          ?Persistence of Reachability/可達性持久化
          × 雙向關聯與inverse設定,這個是接著Cascade Persistence來說明的。與多對一映射和一對多映射的區別是可以自動更新子類。
          × 延遲初始(Lazy Initialization)。真正需要時才向數據庫索取數據。但是在處理加載的代碼中間不能關閉Session,否則發生LazyInitializationException。

          5 Session 與 Criteria
          × Session管理:
          ?Session是Hibernate的核心,負責對象的生命周期、事務管理、數據庫存取。
          ?Session由SessionFactory創建,SessionFactory是線程案例的,但是Session不是,因此不能共用。
          ?為了提高使用效率,提供了一個共用Session的例子,采用ThreadLocal實現供參考。
          × Criteria查詢:
          ?可以不使用SQL或者HQL,而采用完全基于Java的語法風格來進行數據查詢;
          ?但是,Criteria現在只能提供許多基本的功能。
          6 事務管理
          × 事務管理:
          ?JDBC事務。用Connection管理事務,Hibernate對JDBC事務做了簡單封裝。
          ?JTA事務。使用JTA容器來管理事務,與Session無關。

          × 悲觀鎖定(Pessimistic Locking):依賴系統或者數據庫本身的機制完成。

          × 樂觀鎖定(Optimistic Locking):由Hibernate完成,并且為Hibernate推薦方式,增加了VERSION列。

          7 相關工具
          × SchemaExportTask:從映射文件建立數據庫表
          × Hbm2JavaTask:從映射文件建立Java Bean類。

          posted on 2007-06-19 09:39 zYx.Tom 閱讀(1272) 評論(2)  編輯  收藏 所屬分類: 3.開源項目

          評論

          # re: Hibernate_Gossip學習筆記[未登錄] 2008-08-13 15:22 Jade

          《Spring技術手冊》的作者寫的,對初學者很好,作者把繁體版轉成了簡體版也放在網站上,只不過術語沒有改變而已。http://www.caterpillar.onlyfun.net/gossip  回復  更多評論   

          # re: Hibernate_Gossip學習筆記[未登錄] 2008-08-13 15:24 Jade

          http://caterpillar.onlyfun.net/Gossip/index.html  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 云龙县| 崇阳县| 上犹县| 衡南县| 巴中市| 鄂伦春自治旗| 霞浦县| 雷山县| 广南县| 时尚| 景德镇市| 加查县| 西盟| 新竹市| 阜城县| 山东省| 阿城市| 台山市| 天等县| 同心县| 江华| 高尔夫| 金塔县| 虞城县| 呼玛县| 长治市| 林芝县| 张家界市| 乌兰浩特市| 常宁市| 信丰县| 庄浪县| 虹口区| 榕江县| 涞源县| 贺州市| 广河县| 西盟| 石景山区| 依安县| 广丰县|