Java, Only Java!

          統(tǒng)計(jì)

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評(píng)論排行榜

          Hibernate_Gossip學(xué)習(xí)筆記

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

          2 繼承映射:父類與子類
          × 每個(gè)對(duì)象一張表,各自單獨(dú)映射。這樣映射方便,但是有重復(fù)數(shù)據(jù),不能多態(tài)操作。
          × 所有對(duì)象一張表,有個(gè)字段專門用于區(qū)別對(duì)象;
          × 每個(gè)對(duì)象一張表,共享主鍵,除主鍵外沒有重復(fù)數(shù)據(jù),子類屬性通過父類擴(kuò)展查詢。

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

          4 實(shí)體映射:(章節(jié)設(shè)計(jì)是否有問題。因?yàn)橛成渚褪撬姆N:一對(duì)一、一對(duì)多、多對(duì)一、多對(duì)多。其他重要功能:持久化、瀑布持久化、雙向關(guān)聯(lián)與inverse設(shè)定。)
          × 多對(duì)一映射?× 一對(duì)多映射?× 一對(duì)一映射?× 多對(duì)多映射
          × Cascade Persistent/瀑布持久化:父類持久化后,子類應(yīng)自動(dòng)持久化。
          ?Persistence of Reachability/可達(dá)性持久化
          × 雙向關(guān)聯(lián)與inverse設(shè)定,這個(gè)是接著Cascade Persistence來說明的。與多對(duì)一映射和一對(duì)多映射的區(qū)別是可以自動(dòng)更新子類。
          × 延遲初始(Lazy Initialization)。真正需要時(shí)才向數(shù)據(jù)庫索取數(shù)據(jù)。但是在處理加載的代碼中間不能關(guān)閉Session,否則發(fā)生LazyInitializationException。

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

          × 悲觀鎖定(Pessimistic Locking):依賴系統(tǒng)或者數(shù)據(jù)庫本身的機(jī)制完成。

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

          7 相關(guān)工具
          × SchemaExportTask:從映射文件建立數(shù)據(jù)庫表
          × Hbm2JavaTask:從映射文件建立Java Bean類。

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

          評(píng)論

          # re: Hibernate_Gossip學(xué)習(xí)筆記[未登錄] 2008-08-13 15:22 Jade

          《Spring技術(shù)手冊(cè)》的作者寫的,對(duì)初學(xué)者很好,作者把繁體版轉(zhuǎn)成了簡體版也放在網(wǎng)站上,只不過術(shù)語沒有改變而已。http://www.caterpillar.onlyfun.net/gossip  回復(fù)  更多評(píng)論   

          # re: Hibernate_Gossip學(xué)習(xí)筆記[未登錄] 2008-08-13 15:24 Jade

          http://caterpillar.onlyfun.net/Gossip/index.html  回復(fù)  更多評(píng)論   


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 钦州市| 维西| 吕梁市| 河池市| 洛浦县| 随州市| 许昌县| 六安市| 岳普湖县| 大化| 兴安县| 南宫市| 湘潭县| 海淀区| 团风县| 天祝| 平乐县| 阿图什市| 齐齐哈尔市| 甘洛县| 成安县| 翼城县| 东港市| 淳安县| 渝中区| 囊谦县| 涿州市| 合作市| 顺义区| 甘德县| 麦盖提县| 巴青县| 汉川市| 虞城县| 无锡市| 西青区| 富民县| 汤原县| 台湾省| 浦县| 凤山市|