freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

三大框架總結(jié)(編輯修改稿)

2024-10-08 20:30 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 我們只簡(jiǎn)要講一下每個(gè)主要接口的功能,如果你想了解得更多的話,你可以在Hibernate的源碼包中的 。下面我們依次講一下所有的主要接口:核心接口以下5個(gè)核心接口幾乎在任何實(shí)際開發(fā)中都會(huì)用到。通過(guò)這些接口,你不僅可以存儲(chǔ)和獲得持久對(duì)象,并且能夠進(jìn)行事務(wù)控制。Session 接口Session接口對(duì)于Hibernate 開發(fā)人員來(lái)說(shuō)是一個(gè)最重要的接口。然而在Hibernate中,實(shí)例化的Session是一個(gè)輕量級(jí)的類,創(chuàng)建和銷毀它都不會(huì)占用很多資源。這在實(shí)際項(xiàng)目中確實(shí)很重要,因?yàn)樵诳蛻舫绦蛑校赡軙?huì)不斷地創(chuàng)建以及銷毀Session對(duì)象,如果Session的開銷太大,會(huì)給系統(tǒng)帶來(lái)不良影響。SessionFactory 接口這里用到了一個(gè)設(shè)計(jì)模式――工廠模式,用戶程序從工廠類SessionFactory中取得Session的實(shí)例。令你感到奇怪的是SessionFactory并不是輕量級(jí)的!實(shí)際上它的設(shè)計(jì)者的意圖是讓它能在整個(gè)應(yīng)用中共享。典型地來(lái)說(shuō),一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠了,但是當(dāng)你的項(xiàng)目要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),那你必須為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。SessionFactory在Hibernate中實(shí)際起到了一個(gè)緩沖區(qū)的作用,它緩沖了Hibernate自動(dòng)生成的SQL語(yǔ)句和一些其它的映射數(shù)據(jù),還緩沖了一些將來(lái)有可能重復(fù)利用的數(shù)據(jù)。Configuration 接口Configuration接口的作用是對(duì)Hibernate進(jìn)行配置,以及對(duì)它進(jìn)行啟動(dòng)。在Hibernate的啟動(dòng)過(guò)程中,Configuration類的實(shí)例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個(gè)SessionFactory對(duì)象。Query 和Criteria接口Query接口讓你方便地對(duì)數(shù)據(jù)庫(kù)及持久對(duì)象進(jìn)行查詢,它可以有兩種表達(dá)方式:HQL語(yǔ)言或本地?cái)?shù)據(jù)庫(kù)的SQL語(yǔ)句。Query經(jīng)常被用來(lái)綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。Criteria接口與Query接口非常類似,它允許你創(chuàng)建并執(zhí)行面向?qū)ο蟮臉?biāo)準(zhǔn)化查詢。值得注意的是Query接口也是輕量級(jí)的,它不能在Session之外使用。Callback 接口 當(dāng)一些有用的事件發(fā)生時(shí)――例如持久對(duì)象的載入、存儲(chǔ)、刪除時(shí),Callback接口會(huì)通知Hibernate去接收一個(gè)通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你的項(xiàng)目中創(chuàng)建審計(jì)日志時(shí),你可能會(huì)用到它。以下是它的策略接口: 主鍵的生成(IdentifierGenerator 接口) 本地SQL語(yǔ)言支持(Dialect 抽象類) 緩沖機(jī)制(Cache 和CacheProvider 接口) JDBC 連接管理(ConnectionProvider接口).事務(wù)管理(TransactionFactory, Transaction, 和 TransactionManagerLookup 接口) ORM 策略(ClassPersister 接口) 屬性訪問(wèn)策略(PropertyAccessor 接口) 代理對(duì)象的創(chuàng)建(ProxyFactory接口)Hibernate為以上所列的機(jī)制分別創(chuàng)建了一個(gè)缺省的實(shí)現(xiàn),因此如果你只是要增強(qiáng)它的某個(gè)策略的功能的話,只需簡(jiǎn)單地繼承這個(gè)類就可以了,沒(méi)有必要從頭開始寫代碼。Hibernate運(yùn)行在兩種環(huán)境下:可管理環(huán)境和不可管理環(huán)境 可管理環(huán)境――這種環(huán)境可管理如下資源:池資源管理,諸如數(shù)據(jù)庫(kù)連接池和,還有事務(wù)管理、安全定義。一些典型的J2EE服務(wù)器(JBoss、Weblogic、WebSphere)已經(jīng)實(shí)現(xiàn)了這些。 不可管理環(huán)境――只是提供了一些基本的功能,諸如像Jetty或Tomcat這樣的servlet容器環(huán)境。優(yōu)點(diǎn):Hibernate是JDBC的輕量級(jí)的對(duì)象封裝,它是一個(gè)獨(dú)立的對(duì)象持久層框架。Hibernate可以用在任何JDBC可以使用的場(chǎng)合,例如Java應(yīng)用程序的數(shù)據(jù)庫(kù)訪問(wèn)代碼,DAO接口的實(shí)現(xiàn)類,甚至可以是BMP里面的訪問(wèn)數(shù)據(jù)庫(kù)的代碼。Hibernate是一個(gè)和JDBC密切關(guān)聯(lián)的框架,所以Hibernate的兼容性和JDBC驅(qū)動(dòng),和數(shù)據(jù)庫(kù)都有一定的關(guān)系,但是和使用它的Java程序,和App Server沒(méi)有任何關(guān)系,也不存在兼容性問(wèn)題。Hibernate不能用來(lái)直接和Entity Bean做對(duì)比,只有放在整個(gè)J2EE項(xiàng)目的框架中才能比較。并且即使是放在軟件整體框架中來(lái)看,Hibernate也是做為JDBC的替代者出現(xiàn)的,而不是Entity Bean的替代者出現(xiàn)的,Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,使得Java程序員可以隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。Hibernate可以應(yīng)用在任何使用JDBC的場(chǎng)合。Hibernate 使用 Java 反射機(jī)制 而不是字節(jié)碼增強(qiáng)程序來(lái)實(shí)現(xiàn)透明性。Hibernate 的性能非常好,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。缺點(diǎn):它限制您所使用的對(duì)象模型。(例如,一個(gè)持久性類不能映射到多個(gè)表)。讓我再列一次我已經(jīng)列n次的框架結(jié)構(gòu):傳統(tǒng)的架構(gòu):1)Session Bean Entity Bean DB為了解決性能障礙的替代架構(gòu):2)Session Bean DAO JDBC DB使用Hibernate來(lái)提高上面架構(gòu)的開發(fā)效率的架構(gòu):3)Session Bean DAO Hibernate DB就上面3個(gè)架構(gòu)來(lái)分析:內(nèi)存消耗:采用JDBC的架構(gòu)2無(wú)疑是最省內(nèi)存的,Hibernate的架構(gòu)次之,EB的架構(gòu)1最差。運(yùn)行效率:如果JDBC的代碼寫的非常優(yōu)化,那么JDBC架構(gòu)運(yùn)行效率最高,但是實(shí)際項(xiàng)目中,這一點(diǎn)幾乎做不到,這需要程序員非常精通JDBC,運(yùn)用 Batch語(yǔ)句,調(diào)整PreapredStatement的Batch Size和Fetch Size等參數(shù),以及在必要的情況下采用結(jié)果集cache等等。而一般情況下程序員是做不到這一點(diǎn)的。因此Hibernate架構(gòu)表現(xiàn)出最快的運(yùn)行效率。EB的架構(gòu)效率會(huì)差的很遠(yuǎn)。開發(fā)效率:在有JBuilder的支持下以及簡(jiǎn)單的項(xiàng)目,EB架構(gòu)開發(fā)效率最高,JDBC次之,Hibernate最差。但是在大的項(xiàng)目,特別是持久層關(guān)系映射很復(fù)雜的情況下,Hibernate效率高的驚人,JDBC次之,而EB架構(gòu)很可能會(huì)失敗。第三篇:Java工程師面試題(三大框架)Struts,Spring,Hibernate三大框架的面試?原理: ,創(chuàng)建SessionFactory 為什么要用: ,大大簡(jiǎn)化了數(shù)據(jù)訪問(wèn)層繁瑣的重復(fù)性代碼。,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn)。他很大程度的簡(jiǎn)化DAO層的編碼工作 ,而不是字節(jié)碼增強(qiáng)程序來(lái)實(shí)現(xiàn)透明性。,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫(kù),從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。2.Hibernate是如何延遲加載?:a)實(shí)體對(duì)象 b)集合(Collection) 提供了屬性的延遲加載功能 當(dāng)Hibernate在查詢數(shù)據(jù)的時(shí)候,數(shù)據(jù)并沒(méi)有存在與內(nèi)存中,當(dāng)程序真正對(duì)數(shù)據(jù)的操作時(shí),對(duì)象才存在與內(nèi)存中,就實(shí)現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開銷,從而提高了服務(wù)器的性能。3.Hibernate中怎樣實(shí)現(xiàn)類之間的關(guān)系?(如:一對(duì)多、多對(duì)多的關(guān)系)類與類之間的關(guān)系主要體現(xiàn)在表與表之間的關(guān)系進(jìn)行操作,它們都市對(duì)對(duì)象進(jìn)行操作,我們程序中把所有的表與類都映射在一起,它們通過(guò)配置文件中的manytoone、onetomany、manytomany:客戶端瀏覽器發(fā)出HTTP請(qǐng)求。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1