成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

關(guān)于hibernate框架的簡介

開發(fā) 后端
關(guān)于hibernate框架的簡介,包括應(yīng)用程序的分層體系結(jié)構(gòu)和持久化層等。

1 應(yīng)用程序的分層體系結(jié)構(gòu)

隨著計算機應(yīng)用軟件的發(fā)展,應(yīng)用程序逐漸由單層體系結(jié)構(gòu)發(fā)展為多層體系結(jié)構(gòu)。其中,三層結(jié)構(gòu)是目前典型的一種應(yīng)用軟件結(jié)構(gòu),如圖1左。

表述層:提供與用戶交互的界面,如GUI(圖形用戶界面),web頁面等;

業(yè)務(wù)邏輯層:負責(zé)各種業(yè)務(wù)邏輯,直接訪問數(shù)據(jù)庫,提供對業(yè)務(wù)數(shù)據(jù)的保存、更新、刪除和查詢操作;

數(shù)據(jù)庫層:負責(zé)存放管理應(yīng)用的持久性業(yè)務(wù)數(shù)據(jù)

 

三層結(jié)構(gòu)的特點是:所有下層向上層提供調(diào)用的接口,具體實現(xiàn)細節(jié)對上層透明。層與層之間存在自上而下的依賴關(guān)系,即上層會訪問下層的API,但下層不依賴于上層。
 

2   持久化層(如圖1右)

(1)什么叫持久化?

在圖1右中,分離出的持久化層封裝了數(shù)據(jù)訪問細節(jié),為業(yè)務(wù)邏輯層提供了面向?qū)ο蟮腁PI。

持久(Persistence),即把數(shù)據(jù)(如內(nèi)存中的對象)保存到可永久保存的存儲設(shè)備中(如磁盤)。持久化的主要應(yīng)用是將內(nèi)存中的數(shù)據(jù)存儲在關(guān)系型的數(shù)據(jù)庫中,當(dāng)然也可以存儲在磁盤文件中、XML數(shù)據(jù)文件中等等。

(2)什么叫持久層?

持久層(Persistence Layer),即專注于實現(xiàn)數(shù)據(jù)持久化應(yīng)用領(lǐng)域的某個特定系統(tǒng)的一個邏輯層面,將數(shù)據(jù)使用者和數(shù)據(jù)實體相關(guān)聯(lián)。

(3)為什么要持久化?增加持久層的作用是什么?

數(shù)據(jù)庫的讀寫是一個很耗費時間和資源的操作,當(dāng)大量用戶同時直接訪問數(shù)據(jù)庫的時候,效率將非常低,如果將數(shù)據(jù)持久化就不需要每次從數(shù)據(jù)庫讀取數(shù)據(jù),直接在內(nèi)存中對數(shù)據(jù)進行操作,這樣就節(jié)約了數(shù)據(jù)庫資源,而且加快了系統(tǒng)的反映速度。

增加持久化層提高了開發(fā)的效率,使軟件的體系結(jié)構(gòu)更加清晰,在代碼編寫和系統(tǒng)維護方面變得更容易。特別是在大型的應(yīng)用里邊,會更有利。同時,持久化層作為單獨的一層,人們可以為這一層獨立的開發(fā)一個軟件包,讓其實現(xiàn)將各種應(yīng)用數(shù)據(jù)的持久化,并為上層提供服務(wù)。從而使得各個企業(yè)里做應(yīng)用開發(fā)的開發(fā)人員,不必再來做數(shù)據(jù)持久化的底層實現(xiàn)工作,而是可以直接調(diào)用持久化層提供的API。

(4)目前在持久化層領(lǐng)域,實現(xiàn)模式有以下幾種:

A 業(yè)務(wù)邏輯和數(shù)據(jù)訪問耦合

B 主動域?qū)ο竽J?/P>

C ORM模式

D JDO模式

E CMP模式

3 ORM介紹

ORM(Object Relational Mapping),即對象關(guān)系映射。

指以O(shè)/R原理設(shè)計的持久化框架(Framework),包括 O/R機制、SQL自生成、事務(wù)處理和Cache管理等。

ORM的實現(xiàn)思想就是將關(guān)系數(shù)據(jù)庫中表的數(shù)據(jù)映射成為對象,以對象的形式展現(xiàn),這樣開發(fā)人員就可以把對數(shù)據(jù)庫的操作轉(zhuǎn)化為對這些對象的操作。因此它的目的是為了方便開發(fā)人員以面向?qū)ο蟮乃枷雭韺崿F(xiàn)對數(shù)據(jù)庫的操作。

常用的ORM中間件有:

Apache OJB (http://db.apache.org/ojb/

Cayenne (http://objectstyle.org/cayenne/

Jaxor (http://jaxor.sourceforge.net

Hibernate (http://www.hibernate.org

iBatis (http://www.ibatis.com

jRelationalFramework (http://ijf.sourceforge.net

mirage (http://itor.cq2.org/en/oss/mirage/toon

SMYLE (http://www.drjava.de/smyle

TopLink (http://otn.oracle.com/products/ias/toplink/index.html

其中 Hibernate 的輕量級 ORM 模型逐步確立了在 Java ORM 架構(gòu)中領(lǐng)導(dǎo)地位,甚至取代復(fù)雜而又繁瑣的 EJB 模型而成為事實上的 Java ORM 工業(yè)標(biāo)準(zhǔn)。而且其中的許多設(shè)計均被 J2EE 標(biāo)準(zhǔn)組織吸納而成為最新 EJB 3.0 規(guī)范的標(biāo)準(zhǔn)。

二 Hibernate定義

Hibernate是一種Java語言下的對象關(guān)系映射解決方案。 它是一種自由、開源的軟件。它用來把對象模型表示的對象映射到基于SQL 的關(guān)系模型結(jié)構(gòu)中去,為面向?qū)ο蟮念I(lǐng)域模型到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫的映射,提供了一個使用方便的框架。

三 Hibernate的作用

Hibernate 不僅管理Java 類到數(shù)據(jù)庫表的映射(包括從Java數(shù)據(jù)類型到SQL數(shù)據(jù)類型的映射),還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的方法,可以大幅度減少開發(fā)時人工使用SQL 和JDBC 處理數(shù)據(jù)的時間。

它的設(shè)計目標(biāo)是將軟件開發(fā)人員從大量相同的數(shù)據(jù)持久層相關(guān)編程工作中解放出來。無論是從設(shè)計草案還是從一個遺留數(shù)據(jù)庫開始,開發(fā)人員都可以采用Hibernate。

四 Hibernate的應(yīng)用

Hibernate對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 Hibernate可以應(yīng)用在任何使用JDBC的場合,它既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用。最具革命意義的是,Hibernate可以在應(yīng)用EJB(Enterprise JavaBeans是Java應(yīng)用于企業(yè)計算的框架)的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任。

五 Hibernate API簡介

1 Hibernate API中的接口可以分為以下幾類:

(1) 提供訪問數(shù)據(jù)庫的操作的接口,包括session、Transaction、Query接口;

(2) 用于配置Hibernate的接口,Configuration;

(3) 間接接口,使應(yīng)用程序接受Hibernate內(nèi)部發(fā)生的事件,并作出相關(guān)的回應(yīng),包括:Interceptor、Lifecycle、Validatable;

(4) 用于擴展Hibernate功能的接口,如UserType、CompositeUserType、IdentifierGenerator接口。

Hibernate內(nèi)部還封裝了JDBC、JTA(Java Transaction API)和JNDI(Java Naming And Directory Interface)。其中,JDBC提供底層的數(shù)據(jù)訪問操作,只要用戶提供了相應(yīng)的JDBC驅(qū)動程序,Hibernate可以訪問任何一個數(shù)據(jù)庫系統(tǒng)。JTA和JNDI使Hibernate能夠和J2EE應(yīng)用服務(wù)器集成。

2   Hibernate的核心接口框圖

六   Hibernate的優(yōu)缺點

(1)優(yōu)點:

a.Hibernate 使用 Java 反射機制 而不是字節(jié)碼增強程序來實現(xiàn)透明性。
b.Hibernate 的性能非常好,因為它是個輕量級框架。映射的靈活性很出色。
c. 它支持各種關(guān)系數(shù)據(jù)庫,從一對一到多對多的各種復(fù)雜關(guān)系。

(2)缺點:

Hibernate限制您所使用的對象模型。例如,一個持久性類不能映射到多個表。

您正在閱讀:關(guān)于hibernate框架的簡介

【編輯推薦】

  1. 十五道關(guān)于Hibernate的面試題
  2. Hibernate常見面試題匯總
  3. Hibernate入門教程 Hibernate關(guān)系映射詳解
責(zé)任編輯:張攀 來源: 百度空間
相關(guān)推薦

2009-09-24 16:53:47

Hibernate A

2009-09-24 08:48:54

Hibernate技術(shù)

2009-09-27 09:46:45

Hibernate會話

2009-09-29 17:00:08

Hibernate c

2009-09-21 13:19:06

Hibernate s

2009-06-30 14:08:00

Hibernate緩存

2009-06-17 10:47:36

Hibernate級聯(lián)級聯(lián)刪除

2010-03-23 16:28:31

CentOS使用

2009-09-28 15:24:38

Hibernate V

2009-09-22 13:09:06

Hibernateorm框架

2009-06-26 16:19:32

Hibernate實現(xiàn)

2009-06-12 14:40:38

Hibernate AHibernate接口

2009-06-04 10:58:15

strutshibernate分頁

2022-11-11 10:56:37

2022-03-31 10:42:04

端口轉(zhuǎn)發(fā)Linux

2009-09-29 10:37:29

Hibernate持久

2009-06-02 17:27:28

Hibernate框架ORM

2011-03-24 11:37:41

Hibernate

2009-06-02 15:30:35

Hibernate面試筆試題

2011-03-30 16:54:13

JUnit
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲美女网站 | 国产视频一区在线 | 成人在线观看免费 | 亚洲久在线 | 伊人网在线播放 | 求毛片 | 免费网站国产 | 91精品久久久久久久久中文字幕 | 精品久久一区二区三区 | 天天色影视综合 | www久久国产| 亚洲视频免费 | 蜜桃特黄a∨片免费观看 | 日韩av一区二区在线观看 | 欧美日本在线观看 | 99精品一级欧美片免费播放 | 黑人巨大精品欧美一区二区免费 | 精品国产乱码久久久久久丨区2区 | 男女羞羞视频免费看 | 911网站大全在线观看 | 日韩欧美高清dvd碟片 | 久久久久一区二区三区 | 久久久国产精品入口麻豆 | 国产成人免费视频网站视频社区 | 中文字幕 国产精品 | 精品91| 国产精品久久久久久久久久久久久久 | 国产一区二区精品在线 | 美日韩中文字幕 | 一级a爱片性色毛片免费 | 天堂久久天堂综合色 | 99热精品国产 | 在线免费国产 | 欧美一级黄色免费 | 一级黄色毛片子 | 中文字幕在线观看国产 | 黄色在线网站 | 久久精品国产一区二区电影 | 亚洲一区二区av在线 | 欧美成人在线影院 | 婷婷综合五月天 |