Hibernate常用的六個接口Configuration、SessionFactory、Session、Transaction、Query、Criteria。
1. Configuration
Configuration是hibernate的核心配置類,用來管理hibernate.cfg.xml和*.hbm.xml文件。讀取hibernate.cfg.xml文件,加載數據庫驅動,用戶名,密碼,連接池。
2. SessionFactory
SessionFactory是一個重量級的類。通常一個數據庫連接只創建一個SessionFactory對象。這個類由Configuration創建。通過它可以創建Session實例。
3.Session
Session一個實例代表與數據庫的一次操作(當然一次操作可以是crud組合),由SessionFactory創建。Session是線程不同步的(不安全),因此要保證在同一線程中使用,可以用getCurrentSessiong()。
Session常用的幾個方法(通過id操作)
a.保存一個對象(記錄)—save方法
b.刪除一個對象(記錄)—delete方法
c.查詢一個對象(記錄)—get/load方法
* get方法 * * 採用的是立即加載,執行到這行代碼的時候,就會馬上發送SQL語句去查詢。 * * 查詢後返回是真實對象本身。 * * 查詢一個找不到的對象的時候,返回null * * load方法 * * 採用的是延遲加載(lazy懶加載),執行到這行代碼的時候,不會發送SQL語句,當真正使用這個對象的時候纔會發送SQL語句。 * * 查詢後返回的是代理對象。javassist-3.18.1-GA.jar 利用javassist技術產生的代理。 * * 查詢一個找不到的對象的時候,返回ObjectNotFoundException
d.修改一個對象(記錄)—update方法
e.保存或修改一個對象(記錄)—saveOrUpdate
4.Transaction
Transaction主要用於事務管理,他是hibernate數據庫事務管理接口,對底層的事務進行封裝
a.commit() 提交相關聯的session實例
b. rollback() 撤銷事務操作
c.wasCommitted() 檢查事務是否提交
5.Query
Query接口類型的對象可以對數據庫操作,它可以使用Hql,Qbc,Qbe和原生SQL(native Sql)對數據庫操作.官方推薦使用Hql語句。Query接口和Criteria接口非常相似。
6.Criteria
Criteria 完全是 面向對象的方式在進行數據查詢,看到有sql語句的痕跡