隨筆 - 63  文章 - 0  trackbacks - 0
          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          1.Hibernate 的初始化.
          讀取Hibernate 的配置信息-〉創建Session Factory
          1)創建Configeration類的實例。
          它的構造方法:將配置信息(Hibernate config.xml)讀入到內存。
          一個Configeration 實例代表Hibernate 所有Java類到Sql數據庫映射的集合。
          2)創建SessionFactory實例
          把Configeration 對象中的所有配置信息拷貝到SessionFactory的緩存中。
          SessionFactory的實例代表一個數據庫存儲員源,創建后不再與Configeration 對象關聯。
          緩存(cache):指Java對象的屬性(通常是一些集合類型的屬性--占用內存空間。
               SessionFactory的緩存中:Hibernate 配置信息。OR映射元數據。
          緩存-大:重量級對象 小:輕量級對象
          3)調用SessionFactory創建Session的方法
          1】用戶自行提供JDBC連接。
             Connection con=dataSource.getConnection();
             Session s=sessionFactory.openSession(con);
          2】讓SessionFactory提供連接
             Session s=sessionFactory.openSession();
          4)通過Session 接口提供的各種方法來操縱數據庫訪問。

          Hibernate 的緩存體系
          一級緩存:
          Session 有一個內置的緩存,其中存放了被當前工作單元加載的對象。
          每個Session 都有自己獨立的緩存,且只能被當前工作單元訪問。
          二級緩存:
          SessionFactory的外置的可插拔的緩存插件。其中的數據可被多個Session共享訪問。
          SessionFactory的內置緩存:存放了映射元數據,預定義的Sql語句。

          Hibernate 中Java對象的狀態
          1.臨時狀態 (transient)
          特征:
             1】不處于Session 緩存中
             2】數據庫中沒有對象記錄
          Java如何進入臨時狀態
             1】通過new語句剛創建一個對象時
             2】當調用Session 的delete()方法,從Session 緩存中刪除一個對象時。

          2.持久化狀態(persisted)
          特征:
             1】處于Session 緩存中
             2】持久化對象數據庫中設有對象記錄
             3】Session 在特定時刻會保持二者同步
          Java如何進入持久化狀態
             1】Session 的save()把臨時-》持久化狀態
             2】Session 的load(),get()方法返回的對象
             3】Session 的find()返回的list集合中存放的對象
             4】Session 的update(),saveOrupdate()使游離-》持久化
          3.游離狀態(detached)
          特征:
             1】不再位于Session 緩存中
             2】游離對象由持久化狀態轉變而來,數據庫中可能還有對應記錄。
          Java如何進入持久化狀態-》游離狀態
             1】Session 的close()方法
             2】Session 的evict()方法,從緩存中刪除一個對象。提高性能。少用。

          posted on 2009-04-09 23:54 lanxin1020 閱讀(126) 評論(0)  編輯  收藏 所屬分類: hibernate
          主站蜘蛛池模板: 兰西县| 蓬安县| 弋阳县| 恭城| 新昌县| 蓝田县| 泸水县| 浮山县| 邢台市| 昭苏县| 潼南县| 原阳县| 临江市| 伊吾县| 商丘市| 梁山县| 阳新县| 商都县| 吐鲁番市| 桂阳县| 河间市| 社旗县| 兴海县| 抚远县| 广水市| 绥江县| 宁夏| 鲁甸县| 呼图壁县| 梨树县| 襄樊市| 南宁市| 遂宁市| 师宗县| 延长县| 淮阳县| 博爱县| 黄浦区| 朝阳市| 马尔康县| 安宁市|