乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      hibernate使用小結(jié)

       昵稱22369024 2015-05-03
      • hibernate適用情況

          在最近的項目開發(fā)過程中,需要實現(xiàn)數(shù)據(jù)的持久化工作,原本打算在應用程序和數(shù)據(jù)庫中中間增加一層數(shù)據(jù)持久層,使用Hibernate技術(shù)實現(xiàn)該功能。經(jīng)過測試發(fā)現(xiàn)hibernate操作數(shù)據(jù)庫的速度較慢,因此放棄的hibernate的使用。

          究竟是什么原因呢?分析hibernate源碼,未發(fā)現(xiàn)hibernate采用多線程異步操作數(shù)據(jù)庫,雖然它也支持緩存管理(hibernate有兩級緩存結(jié)構(gòu)),但在數(shù)據(jù)庫更新頻繁的環(huán)境下,有無緩存差別不大。當然,如果程序要頻繁更新數(shù)據(jù)庫并且對性能要求比較高的話,采用hibernate不是一個十分妥當?shù)慕鉀Q方案。如果對數(shù)據(jù)庫的操作大多數(shù)是查詢的話,采用hibernate應該相當不錯,在開啟hibernate緩存的情況下,應該對性能不會造成太大的影響。

      • hibernate使用中關鍵的類

      Configuration

          Configuration 類負責讀取 Hibernate.cfg.xml 文件,管理Hibernate 的配置信息。Hibernate 運行時需要獲取一些底層實現(xiàn)的基本信息,其中幾個關鍵屬性包括:

          數(shù)據(jù)庫URL

          數(shù)據(jù)庫用戶

          數(shù)據(jù)庫用戶密碼

          數(shù)據(jù)庫JDBC驅(qū)動類

          數(shù)據(jù)庫dialect,用于對特定數(shù)據(jù)庫提供支持,其中包含了針對特定數(shù)據(jù)庫特性的實現(xiàn),如Hibernate數(shù)據(jù)類型到特定數(shù)據(jù)庫數(shù)據(jù)類型的映射等。

      SessionFactory

          SessionFactory負責創(chuàng)建Session實例??梢酝ㄟ^Configuation 實例構(gòu)建SessionFactory。

      Session

          Session是持久層操作的基礎,相當于JDBC中的Connection。Session實例通過SessionFactory實例構(gòu)建。

      Query

         用來執(zhí)行查詢操作。通常由Session類來構(gòu)建。

      Transaction

          每次對數(shù)據(jù)庫的操作都可以看作是一次事務。

          事務通常由session使用session.beginTransaction()方法構(gòu)建。事務結(jié)束要使用commit()方法提交,如果出錯可以使用rollback()方法回滾。

      • 使用步驟

        1.創(chuàng)建數(shù)據(jù)庫

          創(chuàng)建javabean

          創(chuàng)建配置文件Hibernate.cfg.xml和類名.hbm.xml

        2.根據(jù)hibernate配置文件完成初始化,并獲得一個Configuration類的實例。

          Configuration config = new Configuration().configure();

        3.然后根據(jù)該實例構(gòu)建一個SessionFactory的實例.

          SessionFactory sessionFactory = config.buildSessionFactory();

        4.根據(jù) SessionFactory的實例構(gòu)建一個Session的實例

          Session session = sessionFactory.openSession();

        5.調(diào)用Session所提供的save、find、load 、flush等方法完成持久層操作;

          也可以通過session.createQuery方法創(chuàng)建Query一個實例來執(zhí)行查找操作。

      • 配置Hibernate.cfg.xml一個典型的配置文件(Hibernate.cfg.xml),下面配置文件中的注釋應該已經(jīng)比較清楚:<?xml version="1.0" encoding="UTF-8" ?><hibernate-configuration>    <!-- SessionFactory 配置 -->    <session-factory>    <!-- 數(shù)據(jù)庫URL -->    <property name="hibernate.connection.url">    jdbc:oracle:thin:@10.172.10.39:1521:ora92    </property>    <!-- 數(shù)據(jù)庫JDBC驅(qū)動 -->    <property name="hibernate.connection.driver_class">    oracle.jdbc.driver.OracleDriver    </property>    <!-- 數(shù)據(jù)庫用戶名 -->    <property name="hibernate.connection.username">icor</property>    <!-- 數(shù)據(jù)庫用戶密碼 -->    <property name="hibernate.connection.password">icor01</property>    <!--dialect ,每個數(shù)據(jù)庫都有其對應的Dialet以匹配其平臺特性 -->    <property name="dialect">    net.sf.hibernate.dialect.OracleDialect    </property>    <!-- 是否將運行期生成的SQL輸出到日志以供調(diào)試 -->    <property name="hibernate.show_sql">True</property>    <!-- 事務管理類型,這里我們使用JDBC Transaction -->    <property name="hibernate.transaction.factory_class">    net.sf.hibernate.transaction.JDBCTransactionFactory    </property>    <!--映射文件配置,使用相對路徑 -->    <mapping resource="conf/UserInfo.hbm.xml" />    <mapping resource="conf/IcorInfo.hbm.xml" />    </session-factory></hibernate-configuration>

        先寫到這,后續(xù)跟新。。。


        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多