數(shù)據(jù)庫(kù)技術(shù)已經(jīng)成為企業(yè)信息平臺(tái)的核心。應(yīng)用程序必須將業(yè)務(wù)相關(guān)的數(shù)據(jù)通過一定方式持久化到數(shù)據(jù)庫(kù),還應(yīng)能夠從數(shù)據(jù)庫(kù)獲取已有的數(shù)據(jù),以適當(dāng)?shù)男问教峁┙o客戶或支撐系統(tǒng)的運(yùn)行。
關(guān)鍵點(diǎn):如何高效地存取數(shù)據(jù)、簡(jiǎn)化編程模型、降低應(yīng)用的復(fù)雜度
在系統(tǒng)中引入持久層,負(fù)責(zé)所有相關(guān)數(shù)據(jù)的持久化操作,可以為整個(gè)應(yīng)用系統(tǒng)提供一個(gè)高層、統(tǒng)一、安全、并發(fā)的數(shù)據(jù)持久機(jī)制。
1、對(duì)象持久化技術(shù)
1-1、Java 對(duì)象序列化
序列化是 Java 語言中內(nèi)置的輕量級(jí)數(shù)據(jù)持久化機(jī)制,該機(jī)制可以將任何實(shí)現(xiàn)了 java.io.Serializable 接口的對(duì)象轉(zhuǎn)化為連續(xù)的字節(jié)流數(shù)據(jù),保存在文件中,或者通過網(wǎng)絡(luò)進(jìn)行傳輸。這些數(shù)據(jù)日后可被還原為原先的對(duì)象狀態(tài)。
缺點(diǎn):局限性大,查詢只能返回?cái)?shù)據(jù)流的下一個(gè)對(duì)象,不提供部分的讀取和更新,不提供對(duì)象的生命周期管理,只是簡(jiǎn)單的讀取和寫入,不提供并發(fā)和事務(wù)特性。
1-2、使用 JDBC
JDBC(Java Database Connectivity)是用來訪問關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)的標(biāo)準(zhǔn) Java API。JDBC 只是提供訪問數(shù)據(jù)的接口,其底層實(shí)現(xiàn)有特定的數(shù)據(jù)庫(kù)廠商實(shí)現(xiàn)。
缺點(diǎn):直接使用 JDBC 實(shí)現(xiàn)持久化時(shí),SQL 語句和應(yīng)用代碼混雜在一起,邏輯混亂。另外直接使用 SQL 操作數(shù)據(jù)庫(kù),不是面向?qū)ο蟆?/p>
1-3、使用 JDO
Java 數(shù)據(jù)對(duì)象(Java Data Object)是 JCP(Java Community Process)發(fā)布的一個(gè)規(guī)范,是 Java 對(duì)象持久化的標(biāo)準(zhǔn)。JDO 僅定義了標(biāo)準(zhǔn)的編程接口,而把關(guān)系映射的定義留給軟件供應(yīng)商實(shí)現(xiàn)。
1-4、實(shí)體 EJB
實(shí)體 EJB(Enterpise Java Bean)是 Java 領(lǐng)域的數(shù)據(jù)持久化標(biāo)準(zhǔn)。
1-5、對(duì)象關(guān)系映射
對(duì)象關(guān)系映射(Ojbect Relation Mapping)在對(duì)象模型和關(guān)系模型之間建立溝通的橋梁。ORM 技術(shù)封裝了數(shù)據(jù)持久化的操作細(xì)節(jié),為應(yīng)用程序提供了一只訪問的接口,使應(yīng)用程序可以專注于業(yè)務(wù)邏輯的處理。它采用 POJO(Plain Old Java Object,簡(jiǎn)單的傳統(tǒng)對(duì)象)作為域?qū)ο蟮谋硎觯簧婕坝驅(qū)ο笾獾募夹g(shù)細(xì)節(jié),降低的 ORM 技術(shù)的侵入性,實(shí)現(xiàn)簡(jiǎn)單,便于測(cè)試,具備高擴(kuò)展性。
2、對(duì)象關(guān)系映射模型
一個(gè)完整的對(duì)象關(guān)系映射框架,應(yīng)具備以下四個(gè)方面:
①、一個(gè)元數(shù)據(jù)映射規(guī)范,負(fù)責(zé)持久化類、類屬性的數(shù)據(jù)庫(kù)表、字段的映射,實(shí)現(xiàn)對(duì)象和關(guān)系的語義連接。
②、一組對(duì)象操作接口,用于完成數(shù)據(jù)的增加、刪除、修改和更新等操作。
③、一種面向?qū)ο蟮牟樵冋Z言,該語言能理解繼承、多態(tài)和關(guān)聯(lián)等面向?qū)ο筇匦裕瑢?shí)現(xiàn)基于對(duì)象的查詢并在對(duì)象之間導(dǎo)航。
④、一系列與數(shù)據(jù)庫(kù)現(xiàn)關(guān)的技術(shù)實(shí)現(xiàn)和最佳實(shí)踐,保證系統(tǒng)的完整性并提高系統(tǒng)的可用性和擴(kuò)展性。比如:事務(wù)、緩存和數(shù)據(jù)抓取策略等。
對(duì)象模型(類、屬性、關(guān)聯(lián)) <==> 關(guān)系模型(表、字段、約束)
ps. <Hibernate 完全手冊(cè)>
ISBN 978-7-111-23764-8
機(jī)械工業(yè)出版社
侯志松 余周 鄭煥 等編著
posted on 2009-04-10 09:50
黃小二 閱讀(373)
評(píng)論(0) 編輯 收藏 所屬分類:
S/S2SH 、
J2EE 、
J2SE