深入學習Hibernate4_03-通過 Hibernate API 訪問數據庫

閒話少說,來看代碼:

//讀取配置文件
Configuration cf = new Configuration().configure();
//把Hibernate的所有配置信息,註冊到
ServiceRegistry接口中去ServiceRegistry srb = new ServiceRegistryBuilder().applySettings(cf.getProperties()).buildServiceRegistry();
//創建回話工廠
SessionFactory sessionFactory = cf.buildSessionFactory(srb);
//打開會話
Session session = sessionFactory.openSession();
//打開事務
Transaction tr = session.beginTransaction();
//增
CourseSelectUser user = new CourseSelectUser();user.setUserCard("xxxxxxxx");
user.setUserName("2017");
user.setUserNumber("100");
session.save(user);
tr.commit();//提交事務
//查
CourseSelectUser courseSelectUser= (entity.CourseSelectUser) session.get(CourseSelectUser.class, 1);
//刪除 ,先把要刪除的對象查出來,然後才能刪除
CourseSelectUser courseUser= (entity.CourseSelectUser) session.get(CourseSelectUser.class, 1);
session.delete(courseUser);tr.commit(); //提交事務

//修改 ,同樣也是先把對象查詢出來,然後再修改
CourseSelectUser courseuser= (entity.CourseSelectUser) session.get(CourseSelectUser.class, 1);
courseuser.setUserAddress("上海市靜安區延安中路");
courseuser.setUserEmail("[email protected]");
session.update(courseuser);tr.commit(); //提交事務
session.close(); //關閉會話

 
以上代碼就是以操作對象的方式對數據庫的數據進行增、刪、改、查的操作,讀者閱讀的時候注意,增刪改查是需要單個寫開的,我在這裏偷個懶,寫在了一起。
下面來介紹一下幾個關鍵點:



1.Configuration 類
  • Configuration 類負責管理 Hibernate 的配置信息。包括如下內容:
  • Hibernate 運行的底層信息:數據庫的URL、用戶名、密碼、JDBC驅動類,數據庫Dialect,數據庫連接池等(對應 hibernate.cfg.xml 文件)。
  • 持久化類與數據表的映射關係(*.hbm.xml 文件)
  • 創建 Configuration
      • Xml文件(hibernate.cfg.xml)        Configuration cfg = new Configuration().configure();
2.SessionFactory 接口

1. 針對單個數據庫映射關係經過編譯後的內存鏡像,是線程安全的。


2. SessionFactory 對象一旦構造完畢,即被賦予特定的配置信息


3. SessionFactory是生成Session的工廠


4. 構造 SessionFactory 很消耗資源,一般情況下一個應用中只初始化一個 SessionFactory 對象。


5. Hibernate4 新增 ServiceRegistry 接口,所有基於 Hibernate 的配置或者服務都必須統一向


6.這個 ServiceRegistry  註冊後才能生效

3.Session 接口

Session 是應用程序與數據庫之間交互操作的一個單線程對象,是 Hibernate 運作的中心,所有持久化對象必須在 session 的管理下才可以進行持久化操作。此對象的生命週期很短。Session 對象有一個一級緩存,顯式執行 flush 之前,所有的持久層操作的數據都緩存在 session 對象處。相當於 JDBC 中的 Connection。

4.Transaction(事務)

代表一次原子操作,它具有數據庫事務的概念。所有持久層都應該在事務管理下進行,即使是隻讀操作。
  Transaction tx = session.beginTransaction();
常用方法:
commit():提交相關聯的session實例
rollback():撤銷事務操作
wasCommitted():檢查事務是否提交


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