成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Hibernate七大核心接口頗析

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

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

1.Session 接口

Session 接口對于Hibernate 開發(fā)人員來說是一個最重要的接口。然而在Hibernate 中,實例
化的Session是一個輕量級的類,創(chuàng)建和銷毀它都不會占用很多資源。這在實際項目中確實很重要,
因為在客戶程序中,可能會不斷地創(chuàng)建以及銷毀Session 對象,如果Session 的開銷太大,會給系
統(tǒng)帶來不良影響。但值得注意的是Session 對象是非線程安全的,因此在你的設計中,***是一個
線程只創(chuàng)建一個Session對象。
在Hibernate 的設計者的頭腦中,他們將session看作介于數(shù)據(jù)連接與事務管理一種中間接口。
我們可以將session想象成一個持久對象的緩沖區(qū),Hibernate能檢測到這些持久對象的改變,并及
時刷新數(shù)據(jù)庫。我們有時也稱Session是一個持久層管理器,因為它包含這一些持久層相關的操作,
諸如存儲持久對象至數(shù)據(jù)庫,以及從數(shù)據(jù)庫從獲得它們。請注意,Hibernate 的session不同于JSP
應用中的HttpSession。當我們使用session這個術語時,我們指的是Hibernate 中的session,而
我們以后會將HttpSesion 對象稱為用戶session。

 2. SessionFactory 接口

這里用到了一個設計模式――工廠模式,用戶程序從工廠類SessionFactory中取得Session 的
實例。
令你感到奇怪的是SessionFactory并不是輕量級的!實際上它的設計者的意圖是讓它能在整個
應用中共享。典型地來說,一個項目通常只需要一個SessionFactory就夠了,但是當你的項目要操
作多個數(shù)據(jù)庫時,那你必須為每個數(shù)據(jù)庫指定一個SessionFactory。
SessionFactory在Hibernate中實際起到了一個緩沖區(qū)的作用,它緩沖了Hibernate自動生成的SQL
語句和一些其它的映射數(shù)據(jù),還緩沖了一些將來有可能重復利用的數(shù)據(jù)。

3.Configuration 接口

Configuration 接口的作用是對Hibernate 進行配置,以及對它進行啟動。在Hibernate 的啟動
過程中,Configuration 類的實例首先定位映射文檔的位置,讀取這些配置,然后創(chuàng)建一個
SessionFactory對象。
雖然Configuration 接口在整個Hibernate 項目中只扮演著一個很小的角色,但它是啟動
hibernate 時你所遇到的每一個對象。

4.Transaction 接口

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

5.Query 和Criteria接口

Query接口讓你方便地對數(shù)據(jù)庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本
地數(shù)據(jù)庫的SQL語句。Query經(jīng)常被用來綁定查詢參數(shù)、限制查詢記錄數(shù)量,并最終執(zhí)行查詢操作。
Criteria接口與Query接口非常類似,它允許你創(chuàng)建并執(zhí)行面向對象的標準化查詢。
值得注意的是Query接口也是輕量級的,它不能在Session之外使用。

6. Callback 接口

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

7.策略接口

Hibernate與某些其它開源軟件不同的還有一點――高度的可擴展性,這通過它的內置策略機制
來實現(xiàn)。當你感覺到Hibernate 的某些功能不足,或者有某些缺陷時,你可以開發(fā)一個自己的策略來替換它,而你所要做的僅僅只是繼承它的某個策略接口,然后實現(xiàn)你的新策略就可以了,以下是
它的策略接口:
◆主鍵的生成 (IdentifierGenerator 接口)
◆本地SQL語言支持 (Dialect 抽象類)
◆緩沖機制 (Cache 和CacheProvider 接口)
◆JDBC 連接管理 (ConnectionProvider接口)
◆事務管理 (TransactionFactory, Transaction, 和 TransactionManagerLookup 接口)
◆ORM 策略 (ClassPersister 接口)
◆屬性訪問策略 (PropertyAccessor 接口)
◆代理對象的創(chuàng)建 (ProxyFactory接口)

Hibernate為以上所列的機制分別創(chuàng)建了一個缺省的實現(xiàn),因此如果你只是要增強它的某個策略
的功能的話,只需簡單地繼承這個類就可以了,沒有必要從頭開始寫代碼。

【編輯推薦】

  1. 生成Hibernate Mapping文件的分析
  2. Hibernate屬性簡單分析
  3. Struts-Spring-Hibernate案例
  4. 簡述Hibernate配置連接池
  5. 對Hibernate中get()與load()不同點分析
責任編輯:仲衡 來源: javaeye
相關推薦

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ù)字

2009-09-25 10:58:07

Hinerbate單端

2012-09-04 13:58:40

2009-09-24 10:40:19

Hibernate核心

2018-09-10 06:00:12

2009-12-01 14:35:06

Linux忠告

2009-09-25 09:36:55

Hibernate核心

2015-03-20 15:34:35

戴爾云計算DELL

2020-12-22 09:55:55

IT首席信息官CIO

2012-08-06 10:51:40

JavaScript

2020-12-18 10:35:27

IT技術領導者

2015-07-08 08:51:11

SDN

2022-05-23 08:09:42

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

2010-08-09 14:37:00

認證證書

2012-08-06 10:34:26

JavaScript框架

2018-04-11 14:13:29

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

2009-06-12 14:40:38

Hibernate AHibernate接口

2010-07-20 10:48:56

Perl文件操作
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草网站 | 91视频网 | 九九热视频这里只有精品 | 精品久久久精品 | 99久久婷婷国产综合精品电影 | 国产在线精品一区二区三区 | 最近中文字幕免费 | 国产片一区二区三区 | 亚洲视频网 | 日韩视频区 | 韩国毛片视频 | 97伦理影院| 久久久久久成人 | 亚洲一区二区综合 | 一级黄色片免费在线观看 | 亚洲草草视频 | 久久爆操 | 91久久精品日日躁夜夜躁欧美 | 成人免费av在线 | 99久久亚洲 | 黄色欧美 | 日韩成人影院在线观看 | 欧美性受| 91在线观看免费 | 国产 日韩 欧美 制服 另类 | 午夜天堂精品久久久久 | 国产精品欧美精品日韩精品 | 国产亚韩| 91中文在线观看 | 日日夜夜草 | 特a毛片 | 日本中文在线视频 | 看av电影| 国产精品99久久久久久宅男 | 特级毛片 | 成人网av | 高清欧美性猛交 | 亚洲一区二区三区免费在线观看 | 一区二区三区播放 | 99re在线 | 日本午夜网站 |