物件的持久化就是把記憶體中物件形式的業務資料,轉換成資料庫中的關係資料形式的業務資料。廣義理解,物件的持久化還包括記憶體與關聯式資料庫之交換業務資料的各種操作。
實體域物件的持久化最終必須通過資料庫訪問**來實現。j**a.sql包中提供了jdbc api,常用的介面和類有以下內容:
drivermanager: 驅動程式掛曆器,負責建立資料庫連線
connection:代表資料庫連線
statement:
負責執行sql語句
preparedstatement:負責執行sql語句,具有預定義sql語句的功能
resultset:
代表sql查詢語句的查詢結果集
缺點:1. 實現業務邏輯和資料庫訪問**摻雜在一起
2. 程式**中嵌入面向關係的sql語句,開發人員不能完全運用物件導向的思維來編寫程式
3. 業務邏輯被迫與關係資料模型繫結。如果關係資料模型變化,如表結構發生變動,就需要修改所有的相關sql語句
1) orm(物件關係對映)模式指在乙個元件中負責所有實體域物件的持久化,封裝資料訪問細節。
2) orm中介軟體採用元資料描述物件-關係對映細節,元資料通常採用xml格式檔案,並且存放在專門的物件 - 關係 對映檔案中。
3) 常用的orm中介軟體:hibernate, toplink, torque等。
實體域持久化模式除了orm外,還有以下幾種模式:
1) 主動域物件模式
該模式是在實體域物件中封裝了關係資料模型和資料的訪問細節。
2) jdo模式
j**a data objects 是sun公司制定的描述物件持久化語義的標準api.,該模式下,整個應用分為四層。
3) cmp模式
cmp(container-managed persistence) 表示由ejb容器來管理實體ejb的持久化,ejb容器封裝了物件-關係的對映和資料訪問細節。
cmp與orm的相似點:
a:都提供了物件-關係對映服務
b:都把物件持久化的任務從業務邏輯中分離出來
區別:a:cmp負責持久化實體ejb元件,而orm負責持久化pojo,pojo是普通的基於j**abean的實體域物件。
Hibernate二之物件關係
hibernate的關係配置中有兩個重要的配置項 reverse 和 cascade inverse 在雙向關聯的情況下面使用,單向關聯的時候不需要使用reverse配置。cascade 用來設定相互關聯的物件之間的級聯操作。一對一關係 一對多的關係 一對多的關係可以分為三種。以班級 一 學生 多 ...
Hibernate學習筆記之EHCache的配置
hibernate預設二級快取是不啟動的,啟動二級快取 以ehcache為例 需要以下步驟 ehcache.jar和commons logging.jar,如果hibernate.jar中含有ehcache就不用新增ehcache.jar,commons logging.jar是用來實現ehcach...
Java學習之hibernate(二)
自動生成表結構 etc hibernate.properties update 常用 自動生成表結構 如果對映檔案和資料庫表字段不對應 將會修改表的字段 但是原來表的字段不會改變 會新增字段 create 每次執行都會建立乙個新的表 資料丟失 create drop 每次執行都會建立乙個新的表,並且...