自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Hibernate基礎(chǔ):核心接口和數(shù)據(jù)類型

開發(fā) 后端
Hibernate核心接口和Hibernate數(shù)據(jù)類型是Hibernate的基礎(chǔ)。有五個核心接口幾乎在每個Hibernate應(yīng)用中都會用到。一個基礎(chǔ)的并且非常強(qiáng)大的體系結(jié)構(gòu)元素是Hibernate的類型的概念。

一 Hibernate中的核心接口.

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

1 Configuration接口

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

2 SessionFactory接口

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

3 Session接口

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

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

4 Query與Criteria接口

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

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

5 Transaction接口

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

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

一個基礎(chǔ)的并且非常強(qiáng)大的體系結(jié)構(gòu)元素是Hibernate的類型的概念。Hibernate的類型對象將一個Java類型映射到數(shù)據(jù)庫字段的類型(實(shí)際上,類型可能跨越多個字段)。持續(xù)類所有的持續(xù)屬性,包括關(guān)聯(lián),都有一個對應(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接口允許你增加自己的類型。使用這個特征,應(yīng)用使用的共通類例如Address,Name或MonetaryAmount就可以方便優(yōu)雅地進(jìn)行處理了。自定義類型被認(rèn)為是Hibernate的重要特征,并鼓勵你對它們進(jìn)行新的或創(chuàng)造性的使用.

【編輯推薦】

  1. Hibernate對各數(shù)據(jù)庫的連接方言
  2. Hibernate支持Access方言源代碼
  3. eclipse下生成HibernateDAO中的幾個方法
  4. hibernate中update與saveOrUpdate的區(qū)別
  5. HIBERNATE方言
責(zé)任編輯:book05 來源: 百度博客
相關(guān)推薦

2021-04-05 08:22:54

Python進(jìn)制數(shù)據(jù)類型

2024-01-12 09:00:22

Swift常量數(shù)據(jù)類型

2023-10-17 07:57:56

Python數(shù)據(jù)類型

2009-09-24 10:40:19

Hibernate核心

2022-03-01 23:31:29

Python編程語言變量

2009-09-25 09:36:55

Hibernate核心

2009-06-12 14:40:38

Hibernate AHibernate接口

2011-05-23 16:40:00

python

2021-06-09 09:00:11

Python數(shù)據(jù)類型基礎(chǔ)

2021-06-05 10:02:15

Python進(jìn)制數(shù)據(jù)類型

2024-05-10 13:46:36

Python進(jìn)制

2011-08-04 09:56:30

Objective-C 變量 數(shù)據(jù)類型

2011-07-07 10:18:58

Cocoa 實(shí)例變量 數(shù)據(jù)

2023-03-27 10:04:27

數(shù)據(jù)類型浮點(diǎn)型布爾型

2013-05-10 15:27:07

R語言

2009-09-23 14:05:08

Hibernate接口

2009-06-18 15:53:37

Hibernate B

2020-10-26 13:46:07

Java基礎(chǔ)入門篇

2019-08-12 11:40:48

數(shù)據(jù)庫SQLite3數(shù)據(jù)類型

2016-08-18 14:13:55

JavaScript基本數(shù)據(jù)引用數(shù)據(jù)
點(diǎn)贊
收藏

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