一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Hibernate的配置文件

獲取Hibernate

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

Hibernate的配置文件

Hibernate能夠與從應用服務器(受控環(huán)境,如Tomcat,Weblogic,JBoss)到獨立的應用程序(非受控環(huán)境,如獨立應用程 序)的各種環(huán)境和諧工作,這在一定程度上要歸功于其配置文件hibernate.cfg.xml,通過特定的設置Hibernate就能與各種環(huán)境配合。 右邊是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./hibernate-configuration-3.0.dtd">

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

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

    <!-- 顯示SQL語句 -->
    <property name="show_sql">true</property>
   
    <!-- SQL語句整形 -->
    <property name="format_sql">true</property>
   
    <!-- 啟動時創(chuàng)建表.這個選項在第一次啟動程序時放開,以后切記關閉 -->
        <!-- <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連接, 這在非受控環(huán)境如桌面應用程序中很常見。
其中各項屬性為:
connection.driver_class:用于特定數(shù)據(jù)庫的JDBC連接類
connection.url:數(shù)據(jù)庫的完整JDBC URL
connection.username:用于連接到數(shù)據(jù)庫的用戶名
connection.password:用戶密碼

這種方案可用于非受控環(huán)境和基本測試,但不宜在生產(chǎn)環(huán)境中使用。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://hibernate./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 數(shù)據(jù)源

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

附:Server.Xml中的數(shù)據(jù)源設置

<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./hibernate-configuration-3.0.dtd">

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

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


</hibernate-configuration>

數(shù)據(jù)庫方言

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

附錄:常見的數(shù)據(jù)庫方言
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./hibernate-configuration-3.0.dtd">

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

    <!-- SQL方言,org.hibernate.dialect.OracleDialect適合所有Oracle數(shù)據(jù)庫 -->
    <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:它可以在程序運行過程中顯示出真正執(zhí)行的SQL語句來,建議將這個屬性始終打開,它將有益于錯誤診斷。

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

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

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

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

映射定義

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

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

<hibernate-configuration>
  <session-factory name="java:comp/env/hibernate/SessionFactory">
    <!-- JNDI數(shù)據(jù)源設置 -->
    <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>

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    隔壁的日本人妻中文字幕版| 十八禁日本一区二区三区| 日韩欧美精品一区二区三区| 深夜福利亚洲高清性感| 国产精品一区二区不卡中文| 久久大香蕉一区二区三区| 99热在线播放免费观看| 精品亚洲av一区二区三区| 国产人妻熟女高跟丝袜| 欧洲自拍偷拍一区二区| 国产日本欧美韩国在线| 日木乱偷人妻中文字幕在线| 日本av在线不卡一区| 欧美一区二区三区喷汁尤物 | 精品亚洲一区二区三区w竹菊| 美女被草的视频在线观看| 日本和亚洲的香蕉视频| 精品高清美女精品国产区| 国产精品刮毛视频不卡| 国产熟女一区二区三区四区| 国产精品九九九一区二区| 国产欧美一区二区久久| 99福利一区二区视频| 富婆又大又白又丰满又紧又硬| 五月婷婷欧美中文字幕| 国产av精品高清一区二区三区| 亚洲av首页免费在线观看| 色综合视频一区二区观看| 久久这里只有精品中文字幕| 丝袜美女诱惑在线观看| 亚洲精品中文字幕无限乱码| 日韩一区二区三区在线日| 精品人妻久久一品二品三品| 国产传媒免费观看视频| 国产av一二三区在线观看| 午夜福利国产精品不卡| 99精品人妻少妇一区二区人人妻| 欧美三级精品在线观看| 中国美女草逼一级黄片视频| 日韩欧美亚洲综合在线| 美国欧洲日本韩国二本道|