hibernate中的幾大接口

Session接口   

仁和網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),仁和網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為仁和超過(guò)千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的仁和做網(wǎng)站的公司定做!

    

    Session接口對(duì)于Hibernate   開(kāi)發(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的開(kāi)銷太大,會(huì)給系統(tǒng)帶來(lái)不良影響。但值得注意的是 Session對(duì)象是非線程安全的,因此在你的設(shè)計(jì)中,最好是一個(gè)線程只創(chuàng)建一個(gè)Session對(duì)象。   

    

    在Hibernate的設(shè)計(jì)者的頭腦中,他們將session看作介于數(shù)據(jù)連接與事務(wù)管理一種中間接口。我們可以將session想象成一個(gè)持久對(duì)象 的緩沖區(qū),Hibernate能檢測(cè)到這些持久對(duì)象的改變,并及時(shí)刷新數(shù)據(jù)庫(kù)。我們有時(shí)也稱Session是一個(gè)持久層管理器,因?yàn)樗@一些持久層相 關(guān)的操作,諸如存儲(chǔ)持久對(duì)象至數(shù)據(jù)庫(kù),以及從數(shù)據(jù)庫(kù)從獲得它們。請(qǐng)注意,Hibernate   的session不同于JSP應(yīng)用中的HttpSession。當(dāng)我們使用session這個(gè)術(shù)語(yǔ)時(shí),我們指的是Hibernate中的session, 而我們以后會(huì)將HttpSesion對(duì)象稱為用戶session。   

    

    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ì)象。   

    

    雖然Configuration接口在整個(gè)Hibernate項(xiàng)目中只扮演著一個(gè)很小的角色,但它是啟動(dòng)hibernate時(shí)你所遇到的每一個(gè)對(duì)象。   

    

    Transaction   接口   

    

    Transaction接口是一個(gè)可選的API,你可以選擇不使用這個(gè)接口,取而代之的是Hibernate的設(shè)計(jì)者自己寫(xiě)的底層事務(wù)處理代碼。   Transaction接口是對(duì)實(shí)際事務(wù)實(shí)現(xiàn)的一個(gè)抽象,這些實(shí)現(xiàn)包括JDBC的事務(wù)、JTA中的UserTransaction、甚至可以是CORBA 事務(wù)。之所以這樣設(shè)計(jì)是能讓開(kāi)發(fā)者能夠使用一個(gè)統(tǒng)一事務(wù)的操作界面,使得自己的項(xiàng)目可以在不同的環(huán)境和容器之間方便地移值。   

    

    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ì)用到它。  

當(dāng)前文章:hibernate中的幾大接口
轉(zhuǎn)載來(lái)源:http://www.muchs.cn/article44/ghjghe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、軟件開(kāi)發(fā)、網(wǎng)站營(yíng)銷面包屑導(dǎo)航、品牌網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名