溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Hibernate的核心接口和數(shù)據(jù)類型簡(jiǎn)單介紹

發(fā)布時(shí)間:2021-09-14 17:41:40 來(lái)源:億速云 閱讀:123 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“Hibernate的核心接口和數(shù)據(jù)類型簡(jiǎn)單介紹”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

一 Hibernate中的核心接口.

有五個(gè)核心接口幾乎在每個(gè)Hibernate應(yīng)用中都會(huì)用到,是Hibernate基礎(chǔ)中的基礎(chǔ)。使用這些接口,你可以存儲(chǔ)與取出持續(xù)對(duì)象或者對(duì)事務(wù)進(jìn)行控制。

1 Configuration接口

Configuration(配置)對(duì)象用來(lái)配置和引導(dǎo)Hibernate。應(yīng)用使用一個(gè)配置實(shí)例來(lái)指定映射文件的位置和Hibernate的特定屬性,然后創(chuàng)建會(huì)話工廠。即使配置接口只擔(dān)當(dāng)了整個(gè)Hibernate應(yīng)用范圍內(nèi)一個(gè)相對(duì)較小的部分,但它卻是在你開(kāi)始使用Hibernate時(shí)遇到的***個(gè)對(duì)象。

2 SessionFactory接口

應(yīng)用從SessionFactory(會(huì)話工廠)里獲得會(huì)話實(shí)例。與會(huì)話接口相比,這個(gè)對(duì)象不夠令人興奮。會(huì)話工廠當(dāng)然不是輕量級(jí)的!它打算在多個(gè)應(yīng)用線程間進(jìn)行共享。典型地,整個(gè)應(yīng)用只有***的一個(gè)會(huì)話工廠——例如在應(yīng)用初始化時(shí)被創(chuàng)建。然而,如果你的應(yīng)用使用Hibernate訪問(wèn)多個(gè)數(shù)據(jù)庫(kù),你需要對(duì)每一個(gè)數(shù)據(jù)庫(kù)使用一個(gè)會(huì)話工廠。會(huì)話工廠緩存了生成的SQL語(yǔ)句和Hibernate在運(yùn)行時(shí)使用的映射元數(shù)據(jù)。它也保存了在一個(gè)工作單元中讀入的數(shù)據(jù)并且可能在以后的工作單元中被重用(只有類和集合映射指定了這種二級(jí)緩存是想要的時(shí)才會(huì)如此)。

3 Session接口

Session(會(huì)話)接口是Hibernate應(yīng)用使用的主要接口。會(huì)話接口的實(shí)例是輕量級(jí)的并且創(chuàng)建與銷毀的代價(jià)也不昂貴。這很重要,因?yàn)槟愕膽?yīng)用可能始終在創(chuàng)建與銷毀會(huì)話,可能每一次請(qǐng)求都會(huì)如此。Hibernate會(huì)話并不是線程安全的,因此應(yīng)該被設(shè)計(jì)為每次只能在一個(gè)線程中使用。

Hibernate會(huì)話是一個(gè)介于連接和事務(wù)之間的概念。你可以簡(jiǎn)單地認(rèn)為會(huì)話是對(duì)于一個(gè)單獨(dú)的工作單元已裝載對(duì)象的緩存或集合。Hibernate可以檢測(cè)到這個(gè)工作單元中對(duì)象的改變。我們有時(shí)也將會(huì)話稱為持續(xù)性管理器,因?yàn)樗彩桥c持續(xù)性有關(guān)的操作。例如存儲(chǔ)和取出對(duì)象的接口。注意,Hibernate會(huì)話與Web層的HttpSession沒(méi)有任何關(guān)系。當(dāng)我們?cè)诒緯?shū)中使用會(huì)話時(shí),我們指的是Hibernate會(huì)話。為了區(qū)別,有時(shí)我們將HttpSession對(duì)象稱為用戶會(huì)話。

4 Query與Criteria接口

Query(查詢)接口允許你在數(shù)據(jù)庫(kù)上執(zhí)行查詢并控制查詢?nèi)绾螆?zhí)行。查詢使用HQL或者本地?cái)?shù)據(jù)庫(kù)的SQL方言編寫(xiě)。查詢實(shí)例用來(lái)綁定查詢參數(shù),限定查詢返回的結(jié)果數(shù),并且最終執(zhí)行查詢。

Criteria(標(biāo)準(zhǔn))接口非常小,它允許你創(chuàng)建和執(zhí)行面向?qū)ο蟮臉?biāo)準(zhǔn)查詢。為了幫助應(yīng)用代碼減少冗余,Hibernate在會(huì)話接口上提供了一些快捷方法,允許你可以在一行代碼內(nèi)調(diào)用一個(gè)查詢。

5 Transaction接口

Transaction(事務(wù))接口是一個(gè)可選的API。Hibernate應(yīng)用可以選擇不使用這個(gè)接口,而是在它們自己的底層代碼中管理事務(wù)。事務(wù)將應(yīng)用代碼從下層的事務(wù)實(shí)現(xiàn)中抽象出來(lái)——這可能是一個(gè)JDBC事務(wù),一個(gè)JTA用戶事務(wù)或者甚至是一個(gè)公共對(duì)象請(qǐng)求代理結(jié)構(gòu)(CORBA)——允許應(yīng)用通過(guò)一組一致的API控制事務(wù)邊界。這有助于保持Hibernate應(yīng)用在不同類型的執(zhí)行環(huán)境或容器中的可移植性。

二 Hibernate數(shù)據(jù)類型

一個(gè)基礎(chǔ)的并且非常強(qiáng)大的體系結(jié)構(gòu)元素是Hibernate的類型的概念。Hibernate的類型對(duì)象將一個(gè)Java類型映射到數(shù)據(jù)庫(kù)字段的類型(實(shí)際上,類型可能跨越多個(gè)字段)。持續(xù)類所有的持續(xù)屬性,包括關(guān)聯(lián),都有一個(gè)對(duì)應(yīng)的Hibernate類型。這種設(shè)計(jì)使Hibernate變得極端靈活并易于擴(kuò)展。

內(nèi)建類型的范圍非常廣泛,覆蓋了所有的Java基礎(chǔ)類型和許多JDK類,包括java.util.Currency,java.util.Calendar,byte[]和va.io.Serializable。甚至更好一些,Hibernate支持用戶自定義類型。它提供了UserType和serType接口允許你增加自己的類型。使用這個(gè)特征,應(yīng)用使用的共通類例如Address,Name或MonetaryAmount就可以方便優(yōu)雅地進(jìn)行處理了。自定義類型被認(rèn)為是Hibernate的重要特征,并鼓勵(lì)你對(duì)它們進(jìn)行新的或創(chuàng)造性的使用.

“Hibernate的核心接口和數(shù)據(jù)類型簡(jiǎn)單介紹”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI