hibernate如何實現持久化

面試被問到,也許瞭解但說的不清楚java

 

hibernate是一種ORM(object relation mapping,對象關係映射)框架,所謂的對象關係映射,通俗的說,就是把JAVA對象保存到關係型數據庫中。

hibernate要作的事,就是讓對象投影到關係數據庫中,而後實施持久化。其具體實現:
創建對象到關係數據庫的映射。
  example:創建User類到數據庫的映射
  一個簡單的類User:
  public class User{
     private int id;
     private String name;
  }
  
  User類對應的數據庫表USER:
  column-name  type          rule
   id           number        P
   name         varchar2      R

當進行持久化時,須要把對象的兩個屬性的值保存到數據庫存的USER中,若是使用JDBC的話,咱們須要本身寫SQL,並獲取對象兩個屬性的值做爲參數來進行持久話。SQL可能以下:
    insert into USER(name) value(?);

當使用hibernate時,首無要做好對象到表的映射關係,使用配置文件來實現:
  User.hbm.xml:
 ...
<class name="user" table="USER"><!--該類對象保存到USER表-->
      <id name="id" column="id">
        <generator class="native"/><!--這裏有不少策略來生成ID,這裏選擇本地自動生成,-->
      </id>
      <property name="name" column="name">
  </class>
...

而後在經過hibernate.cfg.xml中配置到數據庫的聯接,並讀取User.hbm.xml文件,就創建了映射關係了。

當須要持久化對象時,須要使用到hibernate的session對象:
 session.save(new User());
看到了嗎?咱們只須要操做對象就好了,也就是說,編程的人不須要看到數據庫了,他只須要直接操做對象就好了。

hibernate 如何實現持久化?
答:
1.hibernate是一種ORM(object relation mapping,對象關係映射)框架,所謂的對象關係映射,通俗的說,就是把JAVA對象保存到關係型數據庫中,即進行持久化的框架。

2.hibernate進行持久化首先要創建對象到關係數據庫的映射。

3.hibernate根據定義的映射規則將對象持久化(保存到)數據庫存中。這就實現了對象持久化。 



持久化顧名思義就是把緩存中的東西放到數據庫中使之持久.對於須要持久化的對象,它的生命週期分爲三個狀態:臨時狀態,持久化狀態,遊離狀態.
臨時狀態:剛剛用new語句建立,沒有被持久化,不處於session的緩存中.處於臨時狀態的java對象被稱爲臨時對象.
持久化狀態:已經被持久化,加入到session的緩存中.處於持久化的java對象被稱爲持久化對象.
遊離狀態:已經被持久化,但不處於session的緩存中,處於遊離狀態的java對象被成爲遊離對象.
持久化對象的特徵:
.  位於一個session事例的緩存中,能夠說持久化對象老是被一個session事例關聯
.  持久化對象和數據庫中的相關記錄對應
.  Session在清理緩存時,會根據持久化對象的屬性變化來同步更新數據庫
.  Session的save()方法把臨時狀態變爲持久化狀態.
.  Session的update() ,saveOrUpdate()和lock()方法使遊離狀態變爲持久化狀態. 
相關文章
相關標籤/搜索