1. 程式人生 > >hibernate 入門及心得

hibernate 入門及心得

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

    優勢:跨資料庫的無縫移植

    注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 刪除操作時,必須先查再刪

SessionFactory物件的建立代價很昂貴,它是執行緒安全的物件,它為所有的應用程式執行緒所共享。它只建立一次,通常是在應用程式啟動的時候,由一個Configuraion的例項來建立

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

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

心得:環境配置時不能有中文!配置hibernate和配置jdk差不多。,在環境配置時,新增阿里雲私服可以執行更快。
jar包有問題時,可以去官網下載其他版本的jar包,大部分jar包在這裡都能找到(http://mvnrepository.com/),一般都是版本問題,沒啥大問題。
寫專案記得聯網。