Hibernate執行流程
通過Configuration(nfigure();讀取並解析hibernatecfgxml配置文件
由hibernatecfgxml中的<mappingresource=com/xx/Userhbmxml/>讀取並解析映射信息
通過configbuildSessionFactory();//創建SessionFactory
sessionFactoryopenSession();//打開Sesssion
sessionbeginTransaction();//創建事務Transation
persistentoperate持久化操作
sessiongetTransaction(mit();//提交事務
關閉Session
關閉SesstionFactory
Hibernate核心接口
Hibernate的核心接口一共有個分別為SessionSessionFactoryTransactionQuery和Configuration這個核心接口在任何開發中都會用到通過這些接口不僅可以對持久化對象進行存取還能夠進行事務控制下面對這五的核心接口分別加以介紹
Session接口Session接口負責執行被持久化對象的CRUD操作(CRUD的任務是完成與數據庫的交流包含了很多常見的SQL語句)但需要注意的是Session對象是非線程安全的同時Hibernate的session不同於JSP應用中的HttpSession這裡當使用session這個術語時其實指的是Hibernate中session而以後會將HttpSesion對象稱為用戶session
SessionFactory接口SessionFactroy接口負責初始化Hibernate它充當數據存儲源的代理並負責創建Session對象這裡用到了工廠模式需要注意的是SessionFactory並不是輕量級的因為一般情況下一個項目通常只需要一個SessionFactory就夠當需要操作多個數據庫時可以為每個數據庫指定一個SessionFactory
Configuration接口Configuration接口負責配置並啟動Hibernate創建SessionFactory對象在Hibernate的啟動的過程中Configuration類的實例首先定位映射文檔位置讀取配置然後創建SessionFactory對象
Transaction接口Transaction接口負責事務相關的操作它是可選的開發人員也可以設計編寫自己的底層事務處理代碼
Query和Criteria接口Query和Criteria接口負責執行各種數據庫查詢它可以使用HQL語言或SQL語句兩種表達方式
為什麼使用Hibernate?
Hibernate進一步封裝了JDBC對數據的操作也更加面向對象化了使程序員不用在繁瑣的編寫Dao層將更多的精力放在業務邏輯層上商業項目上企業注重產品的性能如果JDBC的代碼寫的非常優化那麼JDBC架構運行效率最高但是實際項目中這一點幾乎做不到這需要程序員非常精通JDBC運用Batch語句調整PreapredStatement的Batch Size和Fetch Size等參數以及在必要的情況下采用結果集cache等等而一般情況下程序員是做不到這一點的因此Hibernate架構表現出最快的運行效率關於Hibernate的好處還有很多提供一個鏈接使用hibernate的大優勢
Hibernate還提供了很多功能以及Hibernate的必修內容有Hibernate映射HQL緩存延遲加載JPA這些內容還需要細化與深入在後面會繼續總結
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28490.html