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

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

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

    和風細雨

    世上本無難事,心以為難,斯乃真難。茍不存一難之見于心,則運用之術自出。

    Hibernate的配置文件

    獲取Hibernate

    在創建Hibernate項目之前,我們需要從網站獲得最新的Hibernate版本。Hibernate主頁是www.hibernate.org,找到其菜單中的download連接,選擇最新的Hibernate版本即可。下載后將其解開到一個目錄中。
    右邊是解開后的主要目錄。其中最重要的是hibernate.jar,它包含全部框架代碼;lib目錄,包括Hibernate的所有依賴庫;doc目錄,包括JavDocs和參考文檔。

    Hibernate的配置文件

    Hibernate能夠與從應用服務器(受控環境,如Tomcat,Weblogic,JBoss)到獨立的應用程序(非受控環境,如獨立應用程序)的各種環境和諧工作,這在一定程度上要歸功于其配置文件hibernate.cfg.xml,通過特定的設置Hibernate就能與各種環境配合。右邊是hibernate.cfg.xml的一個示例。
    配置Hibernate的所有屬性是一項艱巨的任務,下面將依此介紹Hibernate部署將用到的基本配置。

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
      <session-factory name="java:comp/env/hibernate/SessionFactory">
        <!-- JNDI數據源設置 -->
        <property name="connection.datasource">
          java:comp/env/jdbc/myoracle
        </property>

        <!-- SQL方言,org.hibernate.dialect.OracleDialect適合所有Oracle數據庫 -->
        <property name="dialect">
          org.hibernate.dialect.OracleDialect
        </property>

        <!-- 顯示SQL語句 -->
        <property name="show_sql">true</property>
       
        <!-- SQL語句整形 -->
        <property name="format_sql">true</property>
       
        <!-- 啟動時創建表.這個選項在第一次啟動程序時放開,以后切記關閉 -->
            <!-- <property name="hbm2ddl.auto">create</property>  -->
               
        <!-- 持久化類的配置文件 -->
        <mapping resource="com/sitinspring/domain/User.hbm.xml" />
        <mapping resource="com/sitinspring/domain/Privilege.hbm.xml" />
        <mapping resource="com/sitinspring/domain/Article.hbm.xml" />
        <mapping resource="com/sitinspring/domain/Record.hbm.xml" />
      </session-factory>
    </hibernate-configuration>

    使用Hibernate管理的JDBC連接

    右邊配置文件中的Database connection settings 部分制定了Hibernate管理的JDBC連接, 這在非受控環境如桌面應用程序中很常見。
    其中各項屬性為:
    connection.driver_class:用于特定數據庫的JDBC連接類
    connection.url:數據庫的完整JDBC URL
    connection.username:用于連接到數據庫的用戶名
    connection.password:用戶密碼

    這種方案可用于非受控環境和基本測試,但不宜在生產環境中使用。

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>

        <session-factory>

            <!-- Database connection settings -->
            <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
            <property name="connection.url">jdbc:hsqldb:hsql://localhost</property>
            <property name="connection.username">sa</property>
            <property name="connection.password"></property>

            <!-- JDBC connection pool (use the built-in) -->
            <property name="connection.pool_size">1</property>

            <!-- SQL dialect -->
            <property name="dialect">org.hibernate.dialect.HSQLDialect</property>

            <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>

            。。。。。。。。

        </session-factory>

    </hibernate-configuration>

    使用JNDI 數據源

    在受控環境中,我們可以使用容器提供的數據源,這將使數據庫訪問更加快捷,右邊就是使用Tomcat提供的數據源的配置部分。

    附:Server.Xml中的數據源設置

    <Context path="/MyTodoes" reloadable="true" docBase="E:\Program\Programs\MyTodoes" workDir="E:\Program\Programs\MyTodoes\work" >
     <Resource name="jdbc/myoracle" auth="Container"
              type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
              url="jdbc:oracle:thin:@192.168.104.173:1521:orcl"
              username="hy" password="123456" maxActive="20" maxIdle="10"
              maxWait="-1"/>
    </Context>

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
      <session-factory name="java:comp/env/hibernate/SessionFactory">
        <!-- JNDI數據源設置 -->
        <property name="connection.datasource">
          java:comp/env/jdbc/myoracle
        </property>

        <!-- SQL方言,org.hibernate.dialect.OracleDialect適合所有Oracle數據庫 -->
        <property name="dialect">
          org.hibernate.dialect.OracleDialect
        </property>


    </hibernate-configuration>

    數據庫方言

    Dialect屬性能告知Hibernate執行特定的操作如分頁時需要使用那種SQL方言,如MySql的分頁方案和Oracle的大相徑庭,如設置錯誤或沒有設置一定會導致問題。

    附錄:常見的數據庫方言
    DB2 :org.hibernate.dialect.DB2Dialect
    MySQL :org.hibernate.dialect.MySQLDialect
    Oracle (any version) :org.hibernate.dialect.OracleDialect
    Oracle 9i/10g :org.hibernate.dialect.Oracle9Dialect
    Microsoft SQL Server :org.hibernate.dialect.SQLServerDialect
    Sybase Anywhere :org.hibernate.dialect.SybaseAnywhereDialect

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
      <session-factory name="java:comp/env/hibernate/SessionFactory">
        <!-- JNDI數據源設置 -->
        <property name="connection.datasource">
          java:comp/env/jdbc/myoracle
        </property>

        <!-- SQL方言,org.hibernate.dialect.OracleDialect適合所有Oracle數據庫 -->
        <property name="dialect">
          org.hibernate.dialect.OracleDialect
        </property>

        <!-- 顯示SQL語句 -->
        <property name="show_sql">true</property>
       
        <!-- SQL語句整形 -->
        <property name="format_sql">true</property>
       
    </hibernate-configuration>

    其它屬性

    show_sql:它可以在程序運行過程中顯示出真正執行的SQL語句來,建議將這個屬性始終打開,它將有益于錯誤診斷。

    format_sql:將這個屬性設置為true能將輸出的SQL語句整理成規范的形狀,更方便用于查看SQL語句。

    hbm2ddl.auto:將其設置為create能在程序啟動是根據類映射文件的定義創建實體對象對應的表,而不需要手動去建表,這在程序初次安裝時很方便。
    如果表已經創建并有數據,切記關閉這個屬性,否則在創建表時也會清除掉原有的數據,這也許會導致很嚴重的后果。
    從后果可能帶來的影響來考慮,在用戶處安裝完一次后就應該刪除掉這個節點

    <hibernate-configuration>
      <session-factory name="java:comp/env/hibernate/SessionFactory">
    。。。。。。

        <!-- 顯示SQL語句 -->
        <property name="show_sql">true</property>
       
        <!-- SQL語句整形 -->
        <property name="format_sql">true</property>
       
        <!-- 啟動時創建表.這個選項在第一次啟動程序時放開,以后切記關閉 -->
            <!-- <property name="hbm2ddl.auto">create</property>  -->
               
    。。。。。。
    </hibernate-configuration>

    映射定義

    在hibernate.cfg.xml中,還有一個重要部分就是映射定義,這些文件用于向Hibernate提供關于將對象持久化到關系數據庫的信息。
    一般來說,領域層有一個領域對象就有一個映射文件,建議將它們放在同一目錄(domain)下以便查閱和修改,映射文件的命名規則是:持久化類的類名+.hbm.xml

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
            "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

    <hibernate-configuration>
      <session-factory name="java:comp/env/hibernate/SessionFactory">
        <!-- JNDI數據源設置 -->
        <property name="connection.datasource">
          java:comp/env/jdbc/myoracle
        </property>

    。。。。。。
               
        <!-- 持久化類的配置文件 -->
        <mapping resource="com/sitinspring/domain/User.hbm.xml" />
        <mapping resource="com/sitinspring/domain/Privilege.hbm.xml" />
        <mapping resource="com/sitinspring/domain/Article.hbm.xml" />
        <mapping resource="com/sitinspring/domain/Record.hbm.xml" />
      </session-factory>
    </hibernate-configuration>

    posted on 2008-04-30 16:40 和風細雨 閱讀(2621) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 99无码人妻一区二区三区免费| 亚洲精品av无码喷奶水糖心| 二个人看的www免费视频| 免费人成在线观看网站品爱网日本| 亚洲日本在线电影| 亚洲理论片中文字幕电影| 18女人腿打开无遮掩免费| 亚洲黄色在线电影| 狼群影院在线观看免费观看直播| 91精品国产亚洲爽啪在线观看| 99久9在线|免费| 亚洲av永久无码嘿嘿嘿| 国产精品麻豆免费版| 三年片在线观看免费观看大全中国| 亚洲日本va午夜中文字幕久久 | 国产猛烈高潮尖叫视频免费| 亚洲6080yy久久无码产自国产 | 免费无码成人AV在线播放不卡| 亚洲午夜电影一区二区三区| 成年私人影院免费视频网站| 亚洲老熟女五十路老熟女bbw| 免费一级做a爰片久久毛片潮喷| 乱淫片免费影院观看| 亚洲国产精品无码av| 在线看片v免费观看视频777 | 亚洲熟妇少妇任你躁在线观看| 全亚洲最新黄色特级网站 | 亚洲乱码中文字幕小综合| 浮力影院第一页小视频国产在线观看免费 | 亚洲裸男gv网站| 亚洲视频在线观看免费| 亚洲国产日韩视频观看| 亚洲国产精品日韩| 6080午夜一级毛片免费看 | 亚洲人成色4444在线观看| 亚洲一区二区高清| 国产曰批免费视频播放免费s| 黄色毛片免费在线观看| 麻豆亚洲av熟女国产一区二| 国产色爽女小说免费看| 久久中文字幕免费视频|