延遲加載、鎖、proxy、Hibernate中多態(tài)的含義如多態(tài)查詢、batch_size批次抓取數(shù)量、鑒別器
Hibernate關(guān)鍵字:inverse、fatch、cascade、lazy
1. private 修飾成員變量時(shí),指定該變量只允許自己類的方法訪問(wèn),其他任何類(包括子類)中的方法都不能訪問(wèn)該變量!
3. 啟動(dòng)hibernate應(yīng)用時(shí),會(huì)創(chuàng)建一個(gè)全局sessionFactory對(duì)象,它可以用于打開(kāi)新的session,一個(gè)session代表一個(gè)單線程的操作, sessionFactory則四個(gè)線程安全的全局對(duì)象,創(chuàng)建和銷毀消耗資源很大,所以此實(shí)例一般只被創(chuàng)建一次。
4. 我們通常不會(huì)操作對(duì)象的標(biāo)志符,因此它的setter()方法應(yīng)該為private型,這樣當(dāng)對(duì)象保存時(shí),只有hibernate可以為它分配標(biāo)志符,hibernate可以直接訪問(wèn)PO的public、private和protected域和方法。
5. 關(guān)于SessionFactory().getCurrentSession()
它返回當(dāng)前工作單元的一個(gè)session,并被hibernate綁定到當(dāng)前線程,當(dāng)事務(wù)結(jié)束后,不管是提交還是回hibernate總會(huì)把Session從當(dāng)前線程中脫離出來(lái),并且關(guān)掉它。假如你再次調(diào)用getCurrentSession()你會(huì)得到一個(gè)新的session,并且開(kāi)始一個(gè)新的工作單元。這種線程綁定的編程模式是hibernate的最廣泛的模式。
6. 若hibernate定義對(duì)象的生成策略為native,則數(shù)據(jù)庫(kù)表此ID字段必須設(shè)為identify類型;若...increment,則...不能設(shè)為identify類型。道理很明白,自己想。
7. 主鍵表VS外鍵表:我必須存在,然后才可能有你,如班級(jí) VS 學(xué)生,班級(jí)必須先存在,才有某個(gè)學(xué)生,那么班級(jí)表是主,主鍵表;外鍵表,這個(gè)表中存在外鍵,eg. 學(xué)生表中有字段classId,為外鍵,所以叫外鍵表。
--------------------------------------
二、持久化類
1. 為了讓hibernate工作得更好,持久化類應(yīng)該遵循一定的規(guī)則,這些規(guī)則也被稱為簡(jiǎn)單傳統(tǒng)的JAVA編程模式POJO,但這些規(guī)則并不是必須的,實(shí)際上hibernate幾乎不對(duì)持久化類做任何設(shè)想。
2. 所有的持久化類必須有一個(gè)無(wú)參的構(gòu)造函數(shù),這樣hibernate可以利用反射機(jī)制PO.newInstanse()來(lái)實(shí)例化PO對(duì)象
3. 代理是hibernate一個(gè)很重要的功能,它能延遲關(guān)聯(lián)加載?
4. lazy="false"所有的延遲加載全部被禁用。延遲加載(fatch)?
--------------------------------------
Hibernate提供了完善的按條件查詢(query by criteria)和按樣例查詢(query by example)的功能。你也可以用原生SQL描述查詢,Hibernate另外提供了將結(jié)果集轉(zhuǎn)化為對(duì)象的支持。
-----------------------------------------------
三、hibernate_reference目錄結(jié)構(gòu)
第一章 Hibernate入門
通過(guò)一個(gè)基于駐留內(nèi)存式數(shù)據(jù)庫(kù)的hibernate程序來(lái)講解hibernate應(yīng)用開(kāi)發(fā)的大致流程。仔細(xì)閱讀本章內(nèi)容可以記住很多經(jīng)常用到的東西。
第二章 體系結(jié)構(gòu)
從很高的角度看hibernate的結(jié)構(gòu),可以從中學(xué)到一些名詞概念性的東西。
第三章 配置
將的是hibernate.config.xml文件常用屬性的配置,及一些可選配置(至少100多項(xiàng)里!)
第四章 持久化類
POJO的設(shè)計(jì),有很多以前沒(méi)見(jiàn)過(guò)的東西,比方實(shí)現(xiàn)繼承。了解它可以滿足一些特殊場(chǎng)合的應(yīng)用。
第五章 對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射基礎(chǔ)
一直到第九章講得都是*.hbm.xml映射文件的配置,詳細(xì)的講解了各個(gè)元素的意義,詳細(xì)的介紹了各種關(guān)聯(lián)關(guān)系的映射策略。本章介紹的是對(duì)一個(gè)普通的表的映射。
第六章 集合類
第七章 關(guān)聯(lián)關(guān)系映射
多對(duì)多、一對(duì)多、多對(duì)一、一對(duì)一單向雙向映射。
第八章 組件映射
Component是一個(gè)被包含的對(duì)象,在持久化的過(guò)程中,它被當(dāng)作值類型,而并非一個(gè)實(shí)體的引用。
第九章 繼承映射
Hibernate支持三種基本的繼承映射策略:每個(gè)類分層結(jié)構(gòu)一張表;每個(gè)子類一張表;每個(gè)具體類一張表。閱讀這一章內(nèi)容對(duì)于設(shè)計(jì)數(shù)據(jù)庫(kù)很有用,因?yàn)樵谠O(shè)計(jì)數(shù)據(jù)庫(kù)中會(huì)考慮這些繼承關(guān)系怎么映射。
第十章 與對(duì)象共事
講述了Hibernate對(duì)象狀態(tài)管理,三種狀態(tài)之間的轉(zhuǎn)換。瞬時(shí)、持久化、脫管。
第十一章 事務(wù)和并發(fā)
第十二章 攔截器與事件
應(yīng)用程序能夠響應(yīng)Hibernate內(nèi)部產(chǎn)生的特定事件,當(dāng)某事件發(fā)生是會(huì)出發(fā)事先定義好的觸發(fā)器。
第十三章 批量處理
針對(duì)大批量數(shù)據(jù)處理的解決方案。
第十四章 HQL:Hibernate查詢語(yǔ)言
基本的HQL語(yǔ)法,不但要看懂,必須熟練應(yīng)用。
第十五章 條件查詢
上一章的延伸,多表查詢、投影、排序或分組 and so on。
第十六章 Native SQL查詢
好象是要介紹利用SQLQuery接口實(shí)現(xiàn)按SQL語(yǔ)句查詢。
第十七章 過(guò)濾數(shù)據(jù)
聽(tīng)這個(gè)名字也大概知道它的作用,認(rèn)真讀一下還是知道個(gè)大概,只有3頁(yè),還是要讀一下的。
第十八章 XML映射
這是Hibernate3.0一個(gè)試驗(yàn)性特征,就是用xml格式的文件來(lái)代替原來(lái)的POJO。
第十九章 提升性能
講述了與性能有關(guān)的抓取、緩存原理,要看。
第二十章——第二十四章 各類映射實(shí)例
講述了多個(gè)練習(xí)用實(shí)例,做為讀完本參考文檔后的鞏固練習(xí)。
posted on 2007-08-24 15:16
楊愛(ài)友 閱讀(468)
評(píng)論(0) 編輯 收藏 所屬分類:
java相關(guān)技術(shù)