Hibernate 基礎知識

2022-03-29 09:59:14 字數 2031 閱讀 7680

hibernate的基本組成:

實體類,實體類的對映檔案,hibernate的配置檔案

hibernate中的常用介面:

讀取hibernate的配置檔案。

概述:configuration 類負責管理hibernate 的配置資訊,即:載入hibernate配置檔案(hibernate.cfg.xml)。它包括如下內容:

hibernate執行的底層資訊:資料庫的url、使用者名稱、密碼、jdbc驅動類,資料庫dialect,資料庫連線池等( hibernate.cfg.xml )。

hibernate實體對映檔案(*.hbm.xml)。

hibernate讀取配置檔案的兩種方法:

讀取屬性檔案(hibernate.properties)-基本不會採用這種配置檔案

呼叫**:configuration cfg = new configuration();

讀取xml檔案(hibernate.cfg.xml)—常採用這種配置檔案

呼叫**:configuration cfg = new configuration().configure();

sessionfactory(會話工廠):

乙個sessionfactory(會話工廠)對應乙個資料庫。

session(會話):

它是操縱hibernate進行crud(增、刪、改、查)操作的。

hibernate在進行crud操作時必須使用session,session不同於jdbc中的connection。也可以這樣理解session對connection又進行了一層包裝,開啟乙個session並不等於開啟乙個connection那麼簡單,因為session的功能要比connection強,session不僅具有connection的功能,還具有管理一級快取的功能,例如:在hibernate中儲存乙個物件,hibernate要完成兩個功能,一是發出相應的sql語句將資料儲存到資料庫表中,另乙個功能是把當前這個物件放入到快取中。

session不是執行緒安全的,它代表與資料庫之間的一次操作,它的概念介於connection和transaction之間,由於不是執行緒安全的,所以不能多執行緒共享使用,否則會產生莫明其妙的問題,session通常是乙個業務請求過來,就open出乙個session,業務請求完畢後session隨之關閉,通常是session關閉後,與該session對應的事務就關閉了,即乙個業務請求對應乙個事務。

session也稱為持久化管理器,因為它是與持久化有關的操作介面。

session通過sessionfactory開啟,在所有的工作完成後,需要關閉。

它與web層的httpsession沒有任何關係。

呼叫**

session session = sessionfactory.opensession();

transaction(事務):

在進行資料查詢時不需要開啟事務;當對資料進行增刪改的時候才有必要開啟事務。

概述它將應用**從底層的事務實現中抽象出來——這可能是乙個jdbc事務,或者是乙個jta使用者事務甚至可能還是乙個公共物件請求**結構(corba)——允許應用通過一組一致的api控制事務邊界(即:底層無論是什麼事務,我們在編寫**時使用的是相同的api,api會自己協調底層不同事物之間的差別,我們不需要關心)。這有助於保持hibernate應用在不同型別的執行環境或容器中的可移植性。

呼叫**:

transaction tx = session.begintransaction();

注:使用hibernate進行操作時必須顯式的呼叫transaction

(預設:autocommit=false)。

query介面

概述:query(查詢)介面允許你在資料庫上執行查詢並控制查詢如何執行。查詢語句使用hql或者本地資料庫的sql方言(即資料庫的sql語句)編寫。

呼叫**:

query query = session.createquery("from user");

Hibernate基礎知識

結構 pojo類 對映 xml檔案 註解 表 hibernate api 翻譯jdbc 操作db 1,核心配置檔案 hibernate.cfg.xml 一般不會更改該檔案的名字 2,jar檔案 手動把需要的配置檔案和jar包拷貝到工程中。通常建立個hbn lib的library 四 hibernat...

Hibernate基礎知識積累

屬性介紹 1,create 表示啟動的時候先drop,再create create drop 也表示建立,只不過再系統關閉前執行一下drop update 這個操作啟動的時候會去檢查schema是否一致,如果不一致會做scheme更新 validate 啟動時驗證現有schema與你配置的hiber...

Hibernate基礎知識整理(五)

hibernate悲觀鎖和樂觀鎖 摘自 hibernate支援兩種鎖機制 悲觀鎖和樂觀鎖 悲觀鎖,借助資料庫的加鎖機制,下面的 實現了對查詢記錄的加鎖 string hql from user where user.name 小唯 query query session.createquery hq...