<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    1.hibernate的優(yōu)缺點

    1.sql語句不用寫了,它使用時只需要操縱對象,使開發(fā)更對象化,為我們提高了生產(chǎn)力;

    2.移植性會很好;

    3.它實現(xiàn)了透明持久化,如POJO,這個對象沒有實現(xiàn)第三方框架或者接口;

    4.它沒有侵入性,即所謂的輕量級框架;

    5.對象之間有很清晰的關(guān)系 一般場合:

    針對某一對象(單個對象)簡單的查\改\刪\增,不是批量修改、刪除,適合用Hibernate;

    而對于批量修改、刪除,不適合用Hibernate,這也是OR框架的弱點;

    要使用數(shù)據(jù)庫的特定優(yōu)化機制的時候,不適合用Hibernate



    2.hibernate的工作原理

    1.配置好hibernate的配置文件和與類對應(yīng)的配置文件后,啟動服務(wù)器

    2.服務(wù)器通過實例化Configeration對象,讀取hibernate.cfg.xml文件的配置內(nèi)容,并根據(jù)相關(guān)的需求建好表或者和表建立好映射關(guān)系

    3.通過實例化的Configeration對象就可以建立sessionFactory實例,進一步,通過sessionFactory實例可以創(chuàng)建 session對象

    4.得到session之后,便可以對數(shù)據(jù)庫進行增刪改查操作了,除了比較復(fù)雜的全文搜索外,簡單的操作都可以通過hibernate封裝好的 session內(nèi)置方法來實現(xiàn)

    5.此外,還可以通過事物管理,表的關(guān)聯(lián)來實現(xiàn)較為復(fù)雜的數(shù)據(jù)庫設(shè)計

    優(yōu)點:hibernate相當于java類和數(shù)據(jù)庫表之間溝通的橋梁,通過這座橋我們就可以做很多事情了





    Hibernate 的初始化.

    讀取Hibernate 的配置信息-〉創(chuàng)建Session Factory

    1)創(chuàng)建Configeration類的實例。

    它的構(gòu)造方法:將配置信息(Hibernate config.xml)讀入到內(nèi)存。

    一個Configeration 實例代表Hibernate 所有Java類到Sql數(shù)據(jù)庫映射的集合。

    2)創(chuàng)建SessionFactory實例

    把Configeration 對象中的所有配置信息拷貝到SessionFactory的緩存中。

    SessionFactory的實例代表一個數(shù)據(jù)庫存儲員源,創(chuàng)建后不再與Configeration 對象關(guān)聯(lián)。

    緩存(cache):指Java對象的屬性(通常是一些集合類型的屬性--占用內(nèi)存空間。

    SessionFactory的緩存中:Hibernate 配置信息。OR映射元數(shù)據(jù)。 3)調(diào)用SessionFactory創(chuàng)建Session的方法

    1】用戶自行提供JDBC連接。

    Connection con=dataSource.getConnection();

    Session s=sessionFactory.openSession(con);

    2】讓SessionFactory提供連接

    Session s=sessionFactory.openSession();

    4)通過Session 接口提供的各種方法來操縱數(shù)據(jù)庫訪問。

    Hibernate 的緩存體系 一級緩存:

    Session 有一個內(nèi)置的緩存,其中存放了被當前工作單元加載的對象。

    每個Session 都有自己獨立的緩存,且只能被當前工作單元訪問。 SessionFactory的外置的可插拔的緩存插件。其中的數(shù)據(jù)可被多個Session共享訪問。

    SessionFactory的內(nèi)置緩存:存放了映射元數(shù)據(jù),預(yù)定義的Sql語句。 Hibernate 中Java對象的狀態(tài)

    1.臨時狀態(tài) (transient) 1】不處于Session 緩存中

    2】數(shù)據(jù)庫中沒有對象記錄

    Java如何進入臨時狀態(tài)

    1】通過new語句剛創(chuàng)建一個對象時

    2】當調(diào)用Session 的delete()方法,從Session 緩存中刪除一個對象時。 2.持久化狀態(tài)(persisted) 1】處于Session 緩存中

    2】持久化對象數(shù)據(jù)庫中設(shè)有對象記錄

    3】Session 在特定時刻會保持二者同步

    Java如何進入持久化狀態(tài)

    1】Session 的save()把臨時-》持久化狀態(tài)

    2】Session 的load(),get()方法返回的對象

    3】Session 的find()返回的list集合中存放的對象

    4】Session 的update(),saveOrupdate()使游離-》持久化

    3.游離狀態(tài)(detached) 1】不再位于Session 緩存中

    2】游離對象由持久化狀態(tài)轉(zhuǎn)變而來,數(shù)據(jù)庫中可能還有對應(yīng)記錄。

    Java如何進入持久化狀態(tài)-》游離狀態(tài)

    1】Session 的close()方法

    2】Session 的evict()方法,從緩存中刪除一個對象。提高性能。少用。

    2.異常的種類運行時異常是系統(tǒng)運行時發(fā)出的異常,程序員控制不了的,這類異常不需要try,catch和throws exception語句,是由java虛擬機拋出的,并且自動捕獲拋出的main方法 中,我們 不能對這個異常進行處理,它會直接終止程序。一般遇到的就是空指針異常,數(shù)組越界異常等,這些異常一般是我們可以在前臺控制臺可以看到的,相信你也看到過吧。 受檢測異 常指的就是我們可以處理的異常,我們可以通過try catch語句捕獲并且處理(也可以不處理直接向上層拋出),處理之后程序還可以繼續(xù)執(zhí)行,不會終止程序,如果每一 層都每一 處理,則會終止程序。

    4.hibernate的緩存機制一級緩存 指的是session(對數(shù)據(jù)進行增刪查改)

    二級緩存 值的是sessionfactory,對一些數(shù)據(jù)庫進行變化的時候 主要是為了減少資源浪費,對一些不經(jīng)常改變的數(shù)據(jù)進行緩存,select * from 這種的語句就是為了減少無謂的浪費資源
    posted on 2012-01-31 10:04 abin 閱讀(333) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 黄页网站在线免费观看| 性无码免费一区二区三区在线 | 成人男女网18免费视频| 国产亚洲精品91| 久久久综合亚洲色一区二区三区| 国产又黄又爽又猛免费app| 无套内谢孕妇毛片免费看看| 久久精品国产亚洲| 永久免费AV无码网站在线观看| aa毛片免费全部播放完整| 2020年亚洲天天爽天天噜| 精品国产亚洲一区二区在线观看| 巨波霸乳在线永久免费视频| 青娱乐在线视频免费观看| 亚洲永久中文字幕在线| 亚洲高清无码在线观看| 波多野结衣中文字幕免费视频 | 久久成人a毛片免费观看网站| 亚洲日本VA午夜在线影院| 狠狠色伊人亚洲综合成人| 日韩伦理片电影在线免费观看| 人人揉揉香蕉大免费不卡| 无码亚洲成a人在线观看| 亚洲综合无码一区二区| 亚洲乱码国产一区网址| 成人无码区免费视频观看| 国产一级淫片a免费播放口| 日本亚洲高清乱码中文在线观看| 91精品国产亚洲爽啪在线影院| 免费国产人做人视频在线观看| 1000部拍拍拍18免费网站| 拍拍拍无挡视频免费观看1000| 亚洲精品国产综合久久久久紧| 亚洲专区先锋影音| 亚洲日本va在线视频观看| 又色又污又黄无遮挡的免费视| 18禁无遮挡无码网站免费| 亚洲黄色免费网站| 无码囯产精品一区二区免费| 久久久受www免费人成| 污网站在线观看免费|