hibernate入門

  1. 什麼是hibernate
    ORM框架/持久層框架
    object reference mapping

    dao dao
    jdbc hibernate
    jdbc

    優勢:跨數據庫的無縫移植

    注1:Object Relational Mapping

  2. 如何在項目中添加hibernate支持(手動添加)
    2.1 添加hibernate相關依賴
    2.2 在resource目錄下添加hibernate.cfg.xml(核心配置文件)
    2.2.1 添加DTD支持
    2.2.2 添加Hibernate的配置
    2.2.2.1 數據庫相關(connection.username|connection.password|connection.url|connection.driver_class|dialect)
    2.2.2.2 調試相關(show_sql|format_sql)
    2.3 在開發階段再創建實體類和實體映射文件(*.hbm.xml)
    實體必須實現Serializable接口

小結:hibernate.cfg.xml(1)/*.hbm.xml(N)
實體映射文件一定要加到核心配置文件

  1. hibernate核心API講解
    3.1 Configuration
    讀取hibernate.cfg.xml

3.2 SessionFactory(1)

3.3 Session(N)
注1:
注2:
3.3.1 save
3.3.2 get(不講load方法,在hibernate對象狀態時再講)
load
3.3.3 delete(先查再刪除,保證程序的健壯性)
User u = (User) session.get(User.class,99);
if(null!=u){
session.delete(u);//比如id=99不存在,直接刪除就會報錯
}
3.3.4 update
先查再改

      局部修改

3.3.4 createQuery        

3.4 Transaction(自動事務和手動事務講解)
commit/rollback

3.5 Query(hql一章講)
查全部/批量修改或刪除
list
setXxx(String name,Xxx value);
setParameter(String name, Object value)
setParameterList(String name, Collection values)
setParameterList(String name, Object[] values)
setFirstResult/setMaxResults

  1. 如何使用hibernate完成CRUD操作
    4.1 CRUD操作步驟
    4.1.1 讀取配置
    4.1.2 創建SessionFactory
    4.1.3 打開Session
    4.1.4 開啓事務
    4.1.5 CURD
    4.1.6 提交事務/回滾事務
    4.1.7 關閉Session
    4.2 注意事項
    4.2.1 hibernate默認使用的是手動事務,因此必須顯示的開啓和提交事務
    4.2.2 刪除操作時,必須先查再刪

  2. 工具類SessionFactoryUtil

  3. OID屬性
    與數據庫主鍵列映射的屬性

SessionFactory對象的創建代價很昂貴,它是線程安全的對象,它爲所有的應用程序線程所共享。它只創建一次,通常是在應用程序啓動的時候,由一個Configuraion的實例來創建

Session對象的創建代價比較小,是非線程安全的,對於單個請求,單個會話、單個的 工作單元而言,它只被使用一次,然後就丟棄。只有在需要的時候,一個Session對象 纔會獲取一個JDBC的Connection(或一個Datasource) 對象,因此假若不使用的時候它不消費任何資源。

Hibernate3.3.2版本中getSession().connection()已被棄用,hibernate4中官方推薦使用Session doWork()方法進行jdbc操作

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