日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate学习笔记--核心编程

發(fā)布時(shí)間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate学习笔记--核心编程 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

參考資料:Java Web核心框架

http://blog.csdn.net/lsh6688/article/details/7611950

?補(bǔ)充:ThreadLocal的使用:http://www.cnblogs.com/gnivor/p/4440776.html

Part 1.hibernate核心接口層次架構(gòu)關(guān)系

圖:hibernate核心接口層次架構(gòu)關(guān)系

上圖中,Hibernate的接口大致可以分為以下幾種類型:

1. 基本操作類一些被用戶的應(yīng)用程序調(diào)用的,用來(lái)完成基本的創(chuàng)建、讀取、更新、刪除操作以及查詢操作的接口。這些接口是Hibernate實(shí)現(xiàn)用戶程序的商業(yè)邏輯的主要接口,它們包括Session、Transaction和Query。

2. 配置類:Hibernate用來(lái)讀取諸如映射表這類配置文件的接口,典型的代表有Configuration類。

3. 回調(diào)(Callback)接口:它允許應(yīng)用程序能對(duì)一些事件的發(fā)生作出相應(yīng)的操作,例如Interceptor、Lifecycle和Validatable都是這一類接口。?

4. 一些可以用來(lái)擴(kuò)展Hibernate的映射機(jī)制的接口:例如UserType、CompositeUserType和IdentifierGenerator。這些接口可由用戶程序來(lái)實(shí)現(xiàn)(如果有必要)。

  Hibernate使用了J2EE架構(gòu)中的如下技術(shù):JDBC、JTA、JNDI。其中JDBC是一個(gè)支持關(guān)系數(shù)據(jù)庫(kù)操作的一個(gè)基礎(chǔ)層;它與JNDI和JTA一起結(jié)合,使得Hibernate可以方便地集成到J2EE應(yīng)用服務(wù)器中去。

?

Part 2.常用核心接口及相互關(guān)系

常用核心接口有6個(gè):Session、SessionFactory、Configuration、Transaction、Query、Criteria

圖:接口類的產(chǎn)生關(guān)系

?

Session接口:

Session接口 Session 接口對(duì)于Hibernate 開(kāi)發(fā)人員來(lái)說(shuō)是一個(gè)最重要的接口。然而在Hibernate中,實(shí)例化的Session是一個(gè)輕量級(jí)的類,創(chuàng)建和銷(xiāo)毀它都不會(huì)占用很多資源。這在實(shí)際項(xiàng)目中確實(shí)很重要,因?yàn)樵诳蛻舫绦蛑?#xff0c;可能會(huì)不斷地創(chuàng)建以及銷(xiāo)毀Session對(duì)象,如果Session 的開(kāi)銷(xiāo)太大,會(huì)給系統(tǒng)帶來(lái)不良影響。但是Session對(duì)象是非線程安全的,因此在你的設(shè)計(jì)中,最好是一個(gè)線程只創(chuàng)建一個(gè)Session對(duì)象。 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ù)從獲得它們。需要注意的是,Hibernate的session不同于JSP 應(yīng)用中的HttpSession。當(dāng)我們使用session這個(gè)術(shù)語(yǔ)時(shí),我們指的Hibernate 中的session,而我們以后會(huì)將HttpSesion 對(duì)象稱為用戶session。

?

SessionFactory接口:

SessionFactroy接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲(chǔ)源的代理,并負(fù)責(zé)創(chuàng)建Session對(duì)象。這里用到了工廠模式。需要注意的是SessionFactory并不是輕量級(jí)的,因?yàn)橐话闱闆r下,一個(gè)項(xiàng)目通常只需要一個(gè)SessionFactory就夠,當(dāng)需要操作多個(gè)數(shù)據(jù)庫(kù)時(shí),可以為每個(gè)數(shù)據(jù)庫(kù)指定一個(gè)SessionFactory。

?

Transaction接口:

Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作,一般在Hibernate的增刪改中出現(xiàn),但是使用Hibernate的人一般使用Spring去管理事務(wù)。

?

Query和Criteria接口:

Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫(kù)查詢。它可以使用HQL語(yǔ)言或SQL語(yǔ)句兩種表達(dá)方式。它的返回值一般是List。需要自己轉(zhuǎn)換。

?

Configuration接口:

Configuration對(duì)象用于配置并啟動(dòng)Hibernate。Hibernate應(yīng)用通過(guò)Configuration實(shí)例來(lái)指定對(duì)象—關(guān)系映射文件的位置或者動(dòng)態(tài)配置Hibernate的屬性,然后創(chuàng)建SessionFactory實(shí)例。在Hibernate啟動(dòng)過(guò)程中,Configuration類的實(shí)例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory實(shí)例。我們可以查看Configuration的源代碼,它的configure()方法是這樣實(shí)現(xiàn)的:

public Configuration configure() throwsHibernateException {configure("/hibernate.cfg.xml" );//此處指定了ORM文件的位置return this; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/gnivor/p/4440184.html

總結(jié)

以上是生活随笔為你收集整理的Hibernate学习笔记--核心编程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。