




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Hibernate介紹及Hibernate4新特性Hibernate介紹及Hibernate4新特性-程同栓Hibernate介紹及Hibernate4新特性什么是hibernate 1、歷史與背景 2、hibernate定義 3、hibernate的作用 4、hibernate的應用 5、hibernate API簡介 6、hibernate優缺點Hibernate介紹及Hibernate4新特性1、歷史與背景a、應用程序的分層體系結構 隨著計算機應用軟件的發展,應用程序逐漸由單層體系結構發展為多層體系結構。其中,三層結構是目前典型的一種應用軟件結構,如圖1左。 表述層:提供與用戶交互的界面
2、,如GUI(圖形用戶界面),web頁面等; 業務邏輯層:負責各種業務邏輯,直接訪問數據庫,提供對業務數據的保存、更新、刪除和查詢操作; 數據庫層:負責存放管理應用的持久性業務數據Hibernate介紹及Hibernate4新特性1、歷史與背景Hibernate介紹及Hibernate4新特性1、歷史與背景b、持久化層(如圖1右) (1)什么叫持久化? 持久(Persistence),即把數據(如內存中的對象)保存到可永久保存的存儲設備中(如磁盤)。持久化的主要應用是將內存中的數據存儲在關系型的數據庫中,當然也可以存儲在磁盤文件中、XML數據文件中等等。 (2)什么叫持久層? 持久層(Persi
3、stence Layer),即專注于實現數據持久化應用領域的某個特定系統的一個邏輯層面,將數據使用者和數據實體相關聯。Hibernate介紹及Hibernate4新特性1、歷史與背景 (3)為什么要持久化?增加持久層的作用是什么? 數據庫的讀寫是一個很耗費時間和資源的操作,當大量用戶同時直接訪問數據庫的時候,效率將非常低,如果將數據持久化就不需要每次從數據庫讀取數據,直接在內存中對數據進行操作,這樣就節約了數據庫資源,而且加快了系統的反映速度。增加持久化層提高了開發的效率,使軟件的體系結構更加清晰,在代碼編寫和系統維護方面變得更容易。特別是在大型的應用里邊,會更有利。同時,持久化層作為單獨的一
4、層,人們可以為這一層獨立的開發一個軟件包,讓其實現將各種應用數據的持久化,并為上層提供服務。從而使得各個企業里做應用開發的開發人員,不必再來做數據持久化的底層實現工作,而是可以直接調用持久化層提供的API。Hibernate介紹及Hibernate4新特性1、歷史與背景 (4)目前持久化領域,實現模式有以下幾種: A 業務邏輯和數據訪問耦合 B 主動域對象模式 C ORM模式 D JDO模式 E CMP模式Hibernate介紹及Hibernate4新特性1、歷史與背景c、ORM介紹 ORM(Object Relational Mapping),即對象關系映射。指以O/R原理設計的持久化框架(
5、Framework),包括 O/R機制、SQL自生成、事務處理和Cache管理等。 ORM的實現思想就是將關系數據庫中表的數據映射成為對象,以對象的形式展現,這樣開發人員就可以把對數據庫的操作轉化為對這些對象的操作。因此它的目的是為了方便開發人員以面向對象的思想來實現對數據庫的操作。Hibernate介紹及Hibernate4新特性1、歷史與背景 常見的ORM中間件有: Apache OJB () Cayenne () Jaxor () Hibernate () iBatis () jRelationalFramework () mirage () SMYLE () TopLink ()Hib
6、ernate介紹及Hibernate4新特性2、hibernate定義 Hibernate是一種Java語言下的對象關系映射解決方案。 它是一種自由、開源的軟件。它用來把對象模型表示的對象映射到基于SQL 的關系模型結構中去,為面向對象的領域模型到傳統的關系型數據庫的映射,提供了一個使用方便的框架。 Hibernate介紹及Hibernate4新特性3、hibernate作用 Hibernate 不僅管理Java 類到數據庫表的映射(包括從Java數據類型到SQL數據類型的映射),還提供數據查詢和獲取數據的方法,可以大幅度減少開發時人工使用SQL 和JDBC 處理數據的時間。 它的設計目標是將
7、軟件開發人員從大量相同的數據持久層相關編程工作中解放出來。無論是從設計草案還是從一個遺留數據庫開始,開發人員都可以采用Hibernate。Hibernate介紹及Hibernate4新特性4、hibernate應用 Hibernate對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,它既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用。最具革命意義的是,Hibernate可以在應用EJB(Enterprise JavaBeans是Java應用于企業計算的框架)
8、的J2EE架構中取代CMP,完成數據持久化的重任。Hibernate介紹及Hibernate4新特性5、hibernate API簡介 a、hibernate API中的接口可以分為一下幾類: (1)提供訪問數據庫的操作的接口,包括session、Transaction、Query接口; (2)用于配置Hibernate的接口,Configuration; (3) 間接接口,使應用程序接受Hibernate內部發生的事件,并作出相關的回應,包括:Interceptor、Lifecycle、Validatable; (4)用于擴展Hibernate功能的接口,如UserType、Composit
9、eUserType、IdentifierGenerator接口。Hibernate介紹及Hibernate4新特性5、hibernate API簡介Hibernate介紹及Hibernate4新特性6、hibernate的優缺點 a、優點 (1)Hibernate 使用 Java 反射機制 而不是字節碼增強程序來實現透明性。 (2)Hibernate 的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。 (3)它支持各種關系數據庫,從一對一到多對多的各種復雜關系。 b、缺點 Hibernate限制您所使用的對象模型。例如,一個持久性類不能映射到多個表。Hibernate介紹及Hiberna
10、te4新特性hibernate新特性 hibernate4中的新特性,這里我先從代碼上來區分一下它與hibernate3的一些改變,分別有: 1、數據庫方言的設置 2、buildSessionFactory 3、annotation 4、事務,hibernateTemplate 5、自動建表Hibernate介紹及Hibernate4新特性1、數據庫方言的設置 org.hibernate.dialect.MySQL5Dialect 在3.3版本中連接MySQL數據庫只需要指明MySQLDialect即可。在4.1版本中可以指出MySQL5DialectHibernate介紹及Hibernate
11、4新特性2、buildSessionFactory 4.1版本中buildSessionFactory()已經被buildSessionFactory(ServiceRegistry ServiceRegistry)取代 解決辦法: Configuration cfg = new Configuration();ServiceRegistry serviceRegistry =new ServiceRegistryBuilder().applySettings(cfg.getProperties().buildServiceRegistry(); SessionFactory sf = cfg
12、.configure().buildSessionFactory(serviceRegistry);Hibernate介紹及Hibernate4新特性3、annotation org.hibernate.cfg.AnnotationConfiguration; Deprecated. All functionality has been moved to Configuration 這個注解讀取配置的class已經廢棄,現在讀取配置不需要特別注明是注解,直接用Configuration cfg = new Configuration();就可以讀取注解。 Hibernate4.1版本中推薦使用
13、annotation配置,所以在引進jar包時把requested里面的包全部引進來就已經包含了annotation必須包了Hibernate介紹及Hibernate4新特性4、事務,hibernateTemplate hibernate4已經完全可以實現事務了 與spring3.1中的hibernatedao,hibernateTemplete等有沖突,所以spring3.1里已經不提供hibernatedaosupport,hibernateTempleteHibernate介紹及Hibernate4新特性5、自動建表 Hibernate4.1已經可以自動建表,所以開發時只需要自己開發類然
14、后配置好就OK。不需要考慮怎么建表(并未測試)Hibernate介紹及Hibernate4新特性hibernate新特性 這里我們來看一下內部的一些新特性,功能的擴展和優化 1多租戶架構支持 2引入了“Services”API 3提供了更棒的日志,支持i18n與消息編碼(通過JBoss Logging而非slf4j) 4清理并刪除了幾處廢棄代碼Hibernate介紹及Hibernate4新特性1、多租戶構架支持 所謂多租戶架構,就是將大型的企業應用劃分為虛擬的多個客戶端/客戶(又叫做租戶)而不必將所有數據放在一個共享空間中。該原則改進了管理、監控, 甚至是安全,對于大型的服務提供商來說非常有幫
15、助。提供云基礎設施的公司也會從多租戶架構中獲益頗豐。該原則有幾種實現方式,列舉如下: a、每個客戶端/租戶使用不同的數據庫與/或模式 b、所有客戶端使用相同的數據庫/模式,但所有表中都有一個附加的列(比如說tenant_id),用于過濾數據Hibernate介紹及Hibernate4新特性2、引入了“Services”API Hibernate中新增的另一個重要特性就是“Services”API規范。除了標準的內建服務外,你還可以通過該API以其他幾種方式擴展 Hibernate。現在已經有了幾種方式可以插入到Hibernate內核中,但Service API則提供了一種標準方式來實現這一點。Hibernate介紹及Hibernate4新特性3、提供了更棒的日志,支持i18n與消息編碼(通過JBoss Logging而非slf4j) 在日志中加入對i18n的支持。 JBoss Logging是唯一一個完整支持i18n(包括參數化)的日志庫.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025石油開采租賃合同
- 2025保健品加盟店合作合同書模板
- 2025租賃合同標準格式
- 小學生傳染病預防教育
- 人教版小學一年級下冊數學第八單元測試題
- 肺快速康復護理
- catchingcrabs課文總結模版
- 三晉卓越聯盟·2024-2025學年高三5月質量檢測卷(25-X-635C)語文(B)
- 浙江省寧波市鎮海中學2025年5月第二次模擬考試 數學試卷+答案
- 2025年出納個人上半年工作總結模版
- 二十屆中央紀律檢查委員會四次會測試題及參考答案
- 六年級下冊科學復習心得分享會
- 嬰幼兒喂養的正確方法
- 重大版小學英語六年級下冊期中試卷(含答案含聽力原文無聽力音頻)
- 工地試驗室安全培訓內容
- 手衛生課件(完整版)
- 中國成人重癥患者鎮痛管理專家共識2023解讀課件
- DB61-T+1801-2023水工隧洞外水壓力確定與應對技術規范
- 兒童糖尿病酮癥酸中毒的護理治療措施
- 會計事務所退休會計師聘用合同
- 《塑料材質食品相關產品質量安全風險管控清單》
評論
0/150
提交評論