第一章 對象持久化與Hibernate
1.1 解耦合
1.1.1 應用層解耦合--應用邏輯(service)和數據邏輯(dao)分離
1.1.2 資源層解耦合--邏輯結構和物理結構分離
1.2 DAO模式
1.2.1 DAO對業務層提供數據抽象層接口
數據存儲邏輯分離
數據訪問底層實現的分離
資源管理和調度的分離
數據抽象
1.3 ORM Object Relactional Mapper 對象--關係型數據映射組件
ORM(Object Relational Mapping)---是一種為了解決麵向對象與關係型數據庫存在的互不匹配的現象的技術。簡單說:ORM是通過使用描述對象和數據庫之間映射的元數據,將Java程序中的對象自動持久化到關係數據中。本質上就是將數據從一種形式轉換到另外一種形式。

分層後,上層不需要知道下層是如何做了。
分層後,不可以循環依賴,一般是單向依賴。
1.4 持久化實現類型(理解)
混雜模式:業務代碼與sql語句寫在一起
Data Class: 數據操作寫在一個類中,還是需要大量的sql語句
基於持久化框架:如Hibernate,不需要sql語句,但可以使用sql
1.5 持久化框架介紹
Hibernate
Apache OJB
JDO(是SUN提出的一套標準—Java數據對象)
Toplink(Orocle公司的)
EJB(2.0X中有CMP;3.0X提出了一套“Java持久化API”---JPA)
IBatis(非常的輕量級,對JDBC做了一個非常非常輕量級的包裝,嚴格說不是O/R映射框架,而是基於SQL的映射(提供了一套配置文件,把SQL語句配置到文件中,再配置一個對象進去,隻要訪問配置文件時,就可得到對象))
JAP(是SUN公司的一套標準),意願統一天下
1.6 Hibernate做什麼:
就是將對象模型(實體類)的東西存入關係模型中,
實體中類對應關係型庫中的一個表,
實體類中的一個屬性會對應關係型數據庫表中的一個列
實體類的一個實例會對應關係型數據庫表中的一條記錄。
%%將對象數據保存到數據庫、將數據庫數據讀入到對象中%%
1.7 Hibernate存在的原因:
解決阻抗不匹配的問題;
目前不存在完整的麵向對象的數據庫
JDBC操作數據庫很繁瑣
SQL語句編寫並不是麵向對象
可以在對象和關係表之間建立關聯來簡化編程
O/R Mapping簡化編程
O/R Mapping跨越數據庫平台
hibernate_0200_OR_Mapping_Simulation
1.8 Hibernate的優缺點:
不需要編寫的SQL語句(不需要編輯JDBC),隻需要操作相應的對象就可以了,就可以能夠存儲、更新、刪除、加載對象,可以提高生產效率;
因為使用Hibernate隻需要操作對象就可以了,所以我們的開發更對象化了;
使用Hibernate,移植性好(隻要使用Hibernate標準開發,更換數據庫時,隻需要配置相應的配置文件就可以了,不需要做其它任務的操作);
Hibernate實現了透明持久化:當保存一個對象時,這個對象不需要繼承Hibernate中的任何類、實現任何接口,隻是個純粹的單純對象—稱為POJO對象(最純粹的對象—這個對象沒有繼承第三方框架的任何類和實現它的任何接口)
Hibernate是一個沒有侵入性的框架
Hibernate代碼測試方便。
1.9 Hibernate使用範圍:
針對某一個對象,簡單的將它加載、編輯、修改,且修改隻是對單個對象(而不是批量的進行修改),這種情況比較適用;
對象之間有著很清晰的關係(例:多個用戶屬於一個組(多對一)、一個組有多個用戶(一對多));
聚集性操作:批量性添加、修改時,不適合使用Hibernate(O/映射框架都不適合使用);
要求使用數據庫中特定的功能時不適合使用,因為Hibernate不使用SQL語句;
最後更新:2017-04-03 18:51:52