偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Hibernate七大核心接口頗析

開(kāi)發(fā) 后端
Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate接口,包括七大核心接口:Session接口、SessionFactory接口 、Configuration 接口、Transaction 接口、Query 和Criteria接口、Callback 接口、策略接口。

Hibernate有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate接口,包括七大核心接口:Session接口、SessionFactory接口 、Configuration 接口、Transaction 接口、Query 和Criteria接口、Callback 接口、策略接口。

1.Session 接口

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。

 2. 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ù)。

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

4.Transaction 接口

Transaction 接口是一個(gè)可選的API,你可以選擇不使用這個(gè)接口,取而代之的是Hibernate 的
設(shè)計(jì)者自己寫的底層事務(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)境和容器之間方便地移值。

5.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之外使用。

6. Callback 接口

當(dāng)一些有用的事件發(fā)生時(shí)――例如持久對(duì)象的載入、存儲(chǔ)、刪除時(shí),Callback 接口會(huì)通知
Hibernate去接收一個(gè)通知消息。一般而言,Callback接口在用戶程序中并不是必須的,但你要在你
的項(xiàng)目中創(chuàng)建審計(jì)日志時(shí),你可能會(huì)用到它。

7.策略接口

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 抽象類)
◆緩沖機(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)有必要從頭開(kāi)始寫代碼。

【編輯推薦】

  1. 生成Hibernate Mapping文件的分析
  2. Hibernate屬性簡(jiǎn)單分析
  3. Struts-Spring-Hibernate案例
  4. 簡(jiǎn)述Hibernate配置連接池
  5. 對(duì)Hibernate中g(shù)et()與load()不同點(diǎn)分析
責(zé)任編輯:仲衡 來(lái)源: javaeye
相關(guān)推薦

2009-09-22 13:25:54

Hibernate M

2013-09-30 10:54:46

2020-08-27 11:05:08

大數(shù)據(jù)互聯(lián)網(wǎng)數(shù)字

2012-09-04 13:58:40

2009-09-25 10:58:07

Hinerbate單端

2009-09-24 10:40:19

Hibernate核心

2009-12-01 14:35:06

Linux忠告

2018-09-10 06:00:12

2009-09-25 09:36:55

Hibernate核心

2012-08-06 10:34:26

JavaScript框架

2018-04-11 14:13:29

物聯(lián)網(wǎng)信息技術(shù)互聯(lián)網(wǎng)

2015-03-20 15:34:35

戴爾云計(jì)算DELL

2020-12-22 09:55:55

IT首席信息官CIO

2012-08-06 10:51:40

JavaScript

2015-07-08 08:51:11

SDN

2010-08-09 14:37:00

認(rèn)證證書

2020-12-18 10:35:27

IT技術(shù)領(lǐng)導(dǎo)者

2022-05-23 08:09:42

物聯(lián)網(wǎng)IOT

2009-06-12 14:40:38

Hibernate AHibernate接口

2018-09-27 11:48:51

點(diǎn)贊
收藏

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