<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    superwei

    導(dǎo)航

    <2025年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    統(tǒng)計(jì)

    常用鏈接

    留言簿(4)

    隨筆分類(lèi)

    隨筆檔案

    文章分類(lèi)

    文章檔案

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    Hibernate的原理與配置快速入門(mén)(3)

    一個(gè)重要的術(shù)語(yǔ):Type

      Hibernate的設(shè)計(jì)者們發(fā)明了一個(gè)術(shù)語(yǔ):Type,它在整個(gè)構(gòu)架中是一個(gè)非常基礎(chǔ)、有著強(qiáng)大功能的元素。一個(gè)Type對(duì)象能將一個(gè)Java類(lèi)型映射到數(shù)據(jù)庫(kù)中一個(gè)表的字段中去(實(shí)際上,它可以映射到表的多個(gè)字段中去)。持久類(lèi)的所有屬性都對(duì)應(yīng)一個(gè)type。這種設(shè)計(jì)思想使用Hibernate有著高度的靈活性和擴(kuò)展性。

      Hibernate內(nèi)置很多type類(lèi)型,幾乎包括所有的Java基本類(lèi)型,例如Java.util.Currency、Java.util.calendar、byte[]和Java.io.Serializable。

      不僅如此,Hibernate還支持用戶(hù)自定義的type,通過(guò)實(shí)現(xiàn)接口UserType和接口CompositeUserType,你可以加入自己的type。你可以利用這種特色讓你的項(xiàng)目中使用自定義的諸如Address、Name這樣的type,這樣你就可以獲得更大的便利,讓你的代碼更優(yōu)雅。自定義type在Hibernate中是一項(xiàng)核心特色,它的設(shè)計(jì)者鼓勵(lì)你多多使用它來(lái)創(chuàng)建一個(gè)靈活、優(yōu)雅的項(xiàng)目!

      策略接口

      Hibernate與某些其它開(kāi)源軟件不同的還有一點(diǎn)――高度的可擴(kuò)展性,這通過(guò)它的內(nèi)置策略機(jī)制來(lái)實(shí)現(xiàn)。當(dāng)你感覺(jué)到Hibernate的某些功能不足,或者有某些缺陷時(shí),你可以開(kāi)發(fā)一個(gè)自己的策略來(lái)替換它,而你所要做的僅僅只是繼承它的某個(gè)策略接口,然后實(shí)現(xiàn)你的新策略就可以了,以下是它的策略接口:

      · 主鍵的生成 (IdentifierGenerator 接口)

      · 本地SQL語(yǔ)言支持 (Dialect 抽象類(lèi))

      · 緩沖機(jī)制 (Cache 和CacheProvider 接口)

      · JDBC 連接管理 (ConnectionProvider接口)

      · 事務(wù)管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口)

      · ORM 策略 (ClassPersister 接口)

      · 屬性訪(fǎng)問(wèn)策略 (PropertyAccessor 接口)

      · 代理對(duì)象的創(chuàng)建 (ProxyFactory接口)

      Hibernate為以上所列的機(jī)制分別創(chuàng)建了一個(gè)缺省的實(shí)現(xiàn),因此如果你只是要增強(qiáng)它的某個(gè)策略的功能的話(huà),只需簡(jiǎn)單地繼承這個(gè)類(lèi)就可以了,沒(méi)有必要從頭開(kāi)始寫(xiě)代碼。

      以上就是Hibernate的一些核心接口,但當(dāng)我們真正開(kāi)始用它進(jìn)行開(kāi)發(fā)時(shí),你的腦海里可能總會(huì)有一個(gè)疑問(wèn):我是通過(guò)什么方式,并從哪里取得Session的呢?以下我們就解答這個(gè)問(wèn)題。

      基礎(chǔ)配置

      現(xiàn)在回顧一下我們先前的內(nèi)容:我們寫(xiě)出了一個(gè)示例程序,并簡(jiǎn)要地講解了Hibernate的一些核心類(lèi)。但要真正使你的項(xiàng)目運(yùn)行起來(lái),還有一件事必須要做:配置。Hibernate可以配置成可在任何Java環(huán)境中運(yùn)行,一般說(shuō)來(lái),它通常被用在2-3層的C/S模式的項(xiàng)目中,并被部署在服務(wù)端。在這種項(xiàng)目中,Web瀏覽器、或Java GUI程序充當(dāng)者客戶(hù)端。盡管我們的焦點(diǎn)主要是集中在多層web應(yīng)用,但實(shí)際上在一些基于命令行的應(yīng)用中也可以使用Hibernate。并且,對(duì)Hibernate的配置在不同的環(huán)境下都會(huì)不同,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)境。一個(gè)普通的Java桌面應(yīng)用或命令行程序也可以認(rèn)為是處于這種環(huán)境下。這種環(huán)境不能提供自動(dòng)事務(wù)處理、資源管理或安全管理,這些都必須由應(yīng)用程序自己來(lái)定義。

      Hibernate的設(shè)計(jì)者們將這兩種環(huán)境設(shè)計(jì)了一個(gè)統(tǒng)一的抽象界面,因此對(duì)于開(kāi)發(fā)者來(lái)說(shuō)只有一種環(huán)境:可管理環(huán)境。如果實(shí)際項(xiàng)目是建立在諸如Tomcat這類(lèi)不可管理的環(huán)境中時(shí),那Hibernate將會(huì)使用它自己的事務(wù)處理代碼和JDBC連接池,使其變?yōu)橐粋€(gè)可管理環(huán)境。
    對(duì)于可管理的環(huán)境而言,Hibernate會(huì)將自己集成在這種環(huán)境中。對(duì)于開(kāi)發(fā)者而言,你所要做的工作非常簡(jiǎn)單:只需從一個(gè)Configuration類(lèi)中創(chuàng)建一個(gè)SessionFactory類(lèi)就可以了。

    posted on 2005-10-31 11:31 小辭猬 閱讀(261) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): JAVA

    主站蜘蛛池模板: 免费观看又污又黄在线观看| 亚洲综合无码精品一区二区三区| 亚洲线精品一区二区三区| 婷婷国产偷v国产偷v亚洲| 四虎影院免费在线播放| 亚洲日韩AV一区二区三区四区| 免费A级毛片无码无遮挡内射| 亚洲在成人网在线看| 最近2019中文字幕免费看最新| 亚洲一区二区三区播放在线| 欧美三级在线电影免费| 亚洲欧美日韩中文无线码| 久久亚洲中文字幕精品有坂深雪| 无码精品人妻一区二区三区免费看 | AV在线播放日韩亚洲欧| baoyu777永久免费视频| 亚洲黄色三级网站| 国产无遮挡吃胸膜奶免费看 | 亚洲熟妇av一区二区三区下载 | 久久精品国产亚洲av麻豆小说| 色噜噜AV亚洲色一区二区| 亚洲性日韩精品一区二区三区 | 成人免费福利视频| 精品视频免费在线| 亚洲人成在线观看| 免费在线观看中文字幕| 无码人妻久久一区二区三区免费丨| 青青青视频免费观看| 国产成人无码免费网站| 亚洲精华国产精华精华液| 亚洲国产成人久久综合一区| 亚洲国产精品人人做人人爽| 国产精品久久久久影院免费| 国产免费卡一卡三卡乱码| 妻子5免费完整高清电视| 又粗又硬免费毛片| 亚洲av鲁丝一区二区三区| 国产精品亚洲w码日韩中文| 久久噜噜噜久久亚洲va久| 亚洲精品亚洲人成在线| 国产va免费精品|