Hibernate核心物件

2022-05-19 17:37:56 字數 1727 閱讀 9246

configuration 類負責管理hibernate的配置資訊。它包括如下內容:

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

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

hibernate配置的兩種方法:

屬性檔案(hibernate.properties)。

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

xml檔案(hibernate.cfg.xml)。

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

應用程式從sessionfactory(會話工廠)裡獲得session(會話)例項。它在多個應用執行緒間進行共享。通常情況下,整個應用只有唯一的乙個會話工廠——例如在應用初始化時被建立。然而,如果你使用hibernate訪問多個資料庫,你需要對每乙個資料庫使用乙個會話工廠。

會話工廠快取了生成的sql語句和hibernate在執行時使用的對映元資料。

呼叫**:

sessionfactorysessionfactory = cfg.buildsessionfactory();

說明:sessionfactory由configuration物件建立,所以每個hibernate配置檔案,實際上是對sessionfactory的配置

session不是執行緒安全的,它代表與資料庫之間的一次操作,它的概念介於connection和transaction之間。

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

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

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

呼叫**:session session= sessionfactory.opensession();

它將應用**從底層的事務實現中抽象出來——這可能是乙個jdbc事務,乙個jta使用者事務或者甚至是乙個公共物件請求**結構(corba)——允許應用通過一組一致的api控制事務邊界。這有助於保持hibernate應用在不同型別的執行環境或容器中的可移植性。

呼叫**: transaction tx =session.begintransaction();

使用hibernate進行操作時必須顯式的呼叫transaction(預設:autocommit=false)。

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

呼叫**: query query =session.createquery(「from user」);

瞬時物件(transientobjects):使用new 操作符初始化的物件不是立刻就持久的。它們的狀態是瞬時的,也就是說它們沒有任何跟資料庫表相關聯的行為,只要應用不再引用這些物件(不再被任何其它物件所引用),它們的狀態將會丟失,並由垃圾**機制**。

持久化物件(persist objects):持久例項是任何具有資料庫標識的例項。它有持久化管理器session統一管理,持久例項是在事務中進行操作的——它們的狀態在事務結束時同資料庫進行同步。當事務提交時,通過執行sql的insert、update和delete語句把記憶體中的狀態同步到資料庫中。

離線物件(detachedobjects):session關閉之後,持久化物件就變為離線物件。離線表示這個物件不能再與資料庫保持同步,它們不再受hibernate管理。

Hibernate的核心物件關係對映

hibernate的核心就是物件關係對映 1 第一掌握對映檔案的書寫 2 第二掌握如何對映某乙個物件,以及class裡面主鍵和普通欄位的設定。注意 property的column屬性的值不能是sql語句的關鍵字,比如desc關鍵字做描述的時候,如果非要使用,可以使用 shift 反引號,不然就要改列...

Hibernate的核心物件關係對映

hibernate的核心就是物件關係對映 1 第一掌握對映檔案的書寫 2 第二掌握如何對映某乙個物件,以及class裡面主鍵和普通欄位的設定。注意 property的column屬性的值不能是sql語句的關鍵字,比如desc關鍵字做描述的時候,如果非要使用,可以使用 shift 反引號,不然就要改列...

Hibernate的核心物件關係對映

hibernate的核心就是物件關係對映 1 第一掌握對映檔案的書寫 2 第二掌握如何對映某乙個物件,以及class裡面主鍵和普通欄位的設定。注意 property的column屬性的值不能是sql語句的關鍵字,比如desc關鍵字做描述的時候,如果非要使用,可以使用 shift 反引號,不然就要改列...