Hibernate配置文件的編寫一

開發第一個hibernate例子

1、導入hibernate所需的jar包,導入JDBC連接的驅動包

2、編寫實體類User.java
hibernate 要求實體類有一個屬性值是唯一值、屬性值都是私有的且有set、get方法。
3、創建實體映射文件,映射文件名稱和位置沒有固定要求,建議寫在實體類包下,名稱:實體類名稱.hbm.xml,這裏爲user.hbm.xml
<?xml version="1.0"?>


 
注:
class標籤:定義了類和對應數據庫表之間的關聯關係
②id標籤:爲對應數據庫表的主鍵
③property標籤:元素映射值類型。
④映射文件中,標籤name是寫實體類相關的內容。
  a.class標籤name屬性時實體類的全路徑,id標籤的name和property標籤name屬性值是實體類屬性名稱。

id標籤property標籤中column屬性可以省略,省略時生成的數據庫表默認與實體類屬性相同。

⑥property標籤type屬性,設置生成表字段的類型,可以省略,會自動對應類型。

4、Hibernate的核心配置文件的編寫

Hibernate配置文件名爲:hibernate.cfg.xml,一般不要修改名稱,並放在src目錄下,該文件的主要目的是爲了連接到數據庫。

以MySql爲例:

<?xml version="1.0" encoding="UTF-8"?>

com.mysql.jdbc.Driver
    		jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    		
    	rootrootorg.hibernate.dialect.MySQLDialecttruetrue
注:
①hibernate操作過程中只加載核心配置文件,其它配置文件不會加載(例如:user.hbm.xml映射文件不會加載)。
②<property name="hibernate.hbm2ddl.auto">update</property>
update:如果已有表,更新,如果沒有表就創建。
create:如果原有表存在,先刪除,再創建新的表。
create-drop:先創建再刪除。
validate:對原有表結構驗證,若現有表結構與原來不同,就不會創建表。
③配置數據庫方言:不同的數據庫的語法不一樣,讓hibernate框架識別不同的數據庫語句。
5、獲取session
// 第一步 加載hibernate核心配置文件
//在src下面找到hibernate.cfg.xml
Configuration cfg = new Configuration().configure();

// 第二步 獲取sessionFaction對象,讀取hibernate核心配置文件,創建SessionFactory
// 根據映射關係,在配置的數據庫裏創建表
SessionFactory sf = cfg.buildSessionFactory();

// 第三步 獲取session對象
//類似於連接
Session session = sf.openSession();

//第四步 開啓事務
Transaction ts=session.beginTransaction();

//第五步 增刪改查
User user = new User();
user.setUsername("小一");
user.setPassword("123");
session.save(user);

//第六步 提交事務
ts.commit();

//第七步 關閉資源
session.close();
sf.close();

Hibernate 5 個核心接口:

Configuration接口:加載hibernate核心配置文件,在src下面找到hibernate.cfg.xml,把配置文件放到對象裏面。

Configuration cfg=new Configuration().configure();

SessionFactory接口創建sessionFaction對象,讀取hibernate核心配置文件根據核心配置文件中數據庫的配置、映射關係,在數據庫裏創建表。

SessionFactory sf=cfg.buildSessionFactory();

創建SessionFactory的過程中,這個過程是消耗資源,性能低,一般在Hibernate操作中一個項目創建一個SessionFactory對象。(寫一個工具類,寫靜態代碼塊實現。)

public class HibernateUtil{
  static  Configuration cfg = null;
  static  SessionFactory sf = null;
  static{
    cfg = new Configuration().configure();
    SessionFactory sf = cfg.buildSessionFactory();
  }
  public static SessionFactory getSessionFactory(){
    return sf;
  }
}

Session接口:類似於jdbc中的connection。單線程對象,session對象不能共用。

Sessionsession=sf.openSession();

保存:save方法、修改:update方法、刪除:delete方法、查詢:根據id用get方法。

Transaction接口:管理事務。

Transaction ts=session.beginTransaction();

ts.commit();//提交事務

ts.rollback();//事務回滾


使用hibernate時候不需要手動創建表,hibernate會幫我們把表創建哦,我們也可以使用根據數據庫表逆向生成實體類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章