P29 @Entity注解將一個類聲明為實體Bean,@Id注解聲明了該實體Bean的標識屬性。Hibernate可以對類的屬性或者方法進行注解。屬性對應field類別,方法的getXxx()對應property類別。定義表通過@Table為實體Bean指定對應數據庫表,目錄和schema的名字。
P29 這個文件是我自己照著網上找到的馬士兵老師的hibernate筆記截圖版 手打出來的 有顏色部分的文字是我學習的時候自己添加的筆記說明(紅色的除外) 刨除去顏色部分 就是和馬士兵老師的原版文檔一模一樣了
P15 Hibernae 的延遲加載是一個非常常用的技術,實體的集合屬性默認會被延遲加載,實體所關聯的實體默認也會被延遲加載。Hibernate 通過這種延遲加載來降低系統的內存開銷,從而保證 Hibernate 的運行性能。
P94 第4章Hibernate應用4.1Hibernate概述4.2Hibernate應用基礎4.3Hibernate關系映射4.4Hibernate高級功能4.5Hibernate與Struts2整合應用4.1Hibernate概述1.ORM簡介對象/關系映射ORM(Object-RelationMapping)是用于將對象與對象之間的關系對應到數據庫表與表之間的關系的一種模式。簡單地說,ORM是通過使用描述對象和數據庫之間映射的元數據,將Java程序中的對象自動持久化到關系數據庫中。對象和關系數據是業務實現的兩種表現形式,業務實體在內存中表現為對象,在數據庫中表現為關系數據。內存中的對象之間存在著關聯和繼承關系。
P40 Hibernate 框架是一個數據訪問框架(也叫持久層框架,可將實體對象變成持久對象,詳 見第 5 章) 。通過 Hibernate 框架可以對數據庫進行增刪改查操作,為業務層構建一個持久層。 可以使用它替代以前的 JDBC 訪問數據。
P2 Hibernate映射類型對照表.
P0 查詢緩存1-1:Hibernate緩存概述Hibernate緩存機制對Hibernate的性能發揮一直處于一個極其重要的作用,它是持久層性能提升的關鍵。hibernate緩存在應用系統中的位置Hibernate緩存介于Hibernate應用和數據庫之間,緩存中存放了數據庫數據的拷貝。其作用是減少訪問數據庫的頻率,從而提高應用的運行性能。
P13 以前我們程序連接數據庫的時候,每一次連接數據庫都要一個連接,用完后再釋放。如果頻繁的數據庫操作,就會導致性能很低。連接池的出現,為開發過程提供了一個很好的管理平臺。當程序中需要建立數據庫連接時,只須從內存中取一個來用而不用新建。同樣,使用完畢后,只需放回內存即可。
P4 權限管理:用戶、功能、角色。要求:每個人可以擁有多種不同的角色。要求:每個角色可以擁有多個功能。當用戶登錄時,應該根據用戶的角色顯示他所具體的所有功能。第一步:設計表結構,分析表之間的關系。第二步:通過SQL先實現簡單的控制,測試是否可行。
P54 在xml中定義的查詢。使用原生的查詢。-SQLQuery批量處理。flush,clear懶加載。lazy二級緩存。Cfg.xml.Ehcache.鎖攔截器監聽。IT資訊交流網WWW.IT315.ORG1、在XML中定義查詢語句
P51 自動到手配置一個hibernate環境表與表之間的關系1對1,多對1/1對多,多對多。-?-bag,list,set級聯-cascade,inversHQL語句再說明-fromSomeClass關聯查詢條件查詢-在關聯查詢與直接將數據封裝成map,JavaBean或是直接返回object[].使用定義的SqL-在xml中定義。使用原生的sql。
P44 為什么用Hibernate?為什么要有Hibernate在原始操作數據庫的過程中,我們都是將JavaBean傳遞到Dao中,然后再從Dao中解析成SQL語句。而Hibernate可以直接處理JavaBean,保存一個Bean就是執行一個SQL.然后就是:處理分頁,一般應用程序都會有分頁功能.數據移植,可能你的項目要運行在多個不同的數據庫上。
P4 要給WEB短信群發系統加一個根據時間統計短信發送條數的功能。以前的系統持久層用的Hibernate。對Hibernate也不是很熟悉。分析后一看要多表聯查,郁悶!沒有玩過Hibernate的多表聯查。上網查了一下,通過試驗完成任務。
P13 JPA全稱Java Persistence API.是Sun官方提出的Java持久化規范。它為Java開發人員提供了一種對象/關系映射工具來管理Java應用中的關系數據。JPA通過JDK 5.0注解或XML描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中。 JPA的宗旨是為POJO提供標準持久化規范,能夠脫離容器獨立運行,方便開發和測試,目前Hibernate3.2/TopLink10.1.3以及OpenJpa都提供了JPA的實現。
P14 模擬緩存的思想一級緩存二級緩存Hibernate主配置文件配置hibernate.cfg.xml實體映射文件測試程序分析統計信息:悲觀鎖:樂觀鎖:配置數據庫連接池:增加c3p0的jar/***模擬Session的緩存思想*。
P4 LazyLoad懶加載
P6 關系級聯操作在如下的操作中如果我們沒有保存Employee會產生錯誤錯誤信息修改配置文件如下:產生如下的sql語句將配置文件改回原來的狀態產生的更改代碼的語句如下:Inverse不能再有序的集合中使用如數組[],列表list在多對多的情況下只能保存兩個對象,如果保存四個對象。
P8 Hibernate的集合類型List類型添加數據后表如下但是更多的情況下我們并不關心員工在數據庫中的順序,這個時候增加一個列會增加數據庫的開銷,這個時候我們不希望增加這樣的一個列,可以使bag屬性Map類型測試代碼測試出現問題的代碼。
P25 關系映射多對一Department.hbm.xmlEmployee.hbm.xml配置住配置文件:編寫主測試文件:添加方法:編寫查詢的測試方法:一對多修改Department類Department.hbm.xml編寫測試代碼:一對一使用共同的主鍵在主配置文件中添加映射編寫測試代碼:使用多對一實現一對一多對多TeacherStudent添加的測試方法查詢測試代碼查詢語句聯合鍵的使用編寫配置文件編寫測試程序生成如下表繼承映射在同一張表中保存所有的信息食用鑒別者列測試代碼如下產生如下的SQL語句數據庫效果如下。
P10 Hibernate領域對象的使用限制提供一個有無意義的標識作為主鍵,該屬性不參與邏輯業務。提供一個無參的構造方法不要把類設計成final類型的(無法實現懶加載)配置文件分析,在配置文件中如果我們不指定一些配置信息,Hibernate會使用默認的配置信息,來配置相應的數據庫的信息。