1. 程式人生 > >深入淺出hibernate1-持久層概述

深入淺出hibernate1-持久層概述

height 1.3 過程 包括 技術 一個 dao null bject

1.持久層概述

持久的概念理解容易,層說明了需要解耦合,

2.持久層設計

2.1解耦合

解耦合的演變過程過程1.完成一個功能時在action中完成 1.連接,statement,statement設值 ,獲取resultset 這個階段持久化的代碼嵌套在業務層,完全耦合過程2.用配置文件配置數據庫的連接參數,出現管理connection的獲得和關閉的DBhelper, 並采用單例
持久層解耦合的目標: 1.應用邏輯和數據邏輯分離
2.邏輯結構和物理結構(數據庫)分離
也就是持久層應該向上不與邏輯層耦合,向下應該不與數據庫耦合 目的就是底層的變動不會影響到上層的實現
過程3.因為現在一個業務需要頻繁操作resultset preparstatement,所以一個業務會十分繁瑣復雜,所以DAO模式出現
DAO模式(Data Access Object) 包括Data Access 和 Data Domain Object 前者是封裝 業務原子操作 後者是Bean的使用
DAO模式的目的: 1.數據存儲邏輯分離
2.數據訪問底層實現的分離 (前兩點我覺得可以歸為一點)
3.資源管理和調度的分離
4.數據抽象 技術分享 過程4.因為要屏蔽下層數據庫所以不同數據庫要有不同的Dao方法實現,所以需要不同dao方法的實現,采用factory模式進行管理,

2.2資源管理模式


資源的管理主要在於 connection,preparedstatement的管理,過程5.數據庫連接池+動態代理模式,管理連接 且 因為考慮到Connection的close方法可能會被在Dao中調用,所以用動態代理使原生的connection.close()方法變成釋放到連接池過程6.statement的管理池,寫法與connectionPool相同,(考慮可能出現connection已經刪除,他所產生的statement還在池中的情況)(偷懶不想寫這個案例了)

3.持久層設計與ORM

ORM的定義使Object/Relational Mapping 即對象-關系數據映射,定義感覺上像是DAO中的domain Object,沒甚麽好講的,很好懂



null

深入淺出hibernate1-持久層概述