1. 程式人生 > >Hibernate入門----核心API

Hibernate入門----核心API

Hibernate入門

hibernate 核心API
Configuration
Configuration : 封裝Hibernate系統配置信息的對象
使用hibernate.cfg.xml加載配置:

/**
 * Configuration().configure(); ,默認讀取classpath下hibernate.cfg.xml文件 
 * Configuration().configure(“配置文件名”); 不常用  /config/ hibernate.cfg.xml  加載
 */
Configuration conf = new Configuration().configure();

資源文件配置方式:
添加配置文件(常用)

<mapping resource="包名/UserModel.hbm.xml"/>

添加持久化類.(需要基於註解)

<mapping class="包名.UserModel"/>

2.使用hibernate.properties加載配置, 這種方法無法自動加載配置資源文件(現在幾乎不用,老版本使用)

Configuration conf = new Configuration ();

資源文件添加方式:

添加配置文件

conf. addResource(“XXX/UserModel.hbm.xml”);

添加持久化類

自動讀取類所在目錄下同名配置文件UserModel.hbm.xml,配置文件命名要保持兩個文件名一致

conf.addClass(UserModel.class);

SessionFactory
SessionFactory對象根據Configuration對象加載的配置信息創建得到,其中封裝了配置信息中有關數據庫的信息、所有的映射關系及預定義SQL語句.

Configuration conf = new Configuration().configure();
SessionFactory sf = conf.buildSessionFactory();

由於SessionFactory對象的創建需要基於所有的配置信息,因此創建此對象需要消耗大量的資源,通常一個應用程序中只初始化一個SessionFactory對象

Session
Session對象是Hibernate與應用程序進行交互的橋梁,應用程序與Hibernate之間通過Session進行數據交互,其功能相當於JDBC中的Connection.

Configuration conf = new Configuration().configure();
 SessionFactory sf = conf.buildSessionFactory();
 Session s = sf.openSession();
 ... 邏輯代碼
 s.colse();

Transaction
開啟事務

Transaction t = s.beginTransaction();

提交事務

t.commit();

回滾事務

t.rollback();

形如:

try {
t.commit();
} catch (Exception e) { // 拋異常則回滾
t.rollback();
} finally { // 關閉session
session.close();
}

Hibernate入門----核心API