Hibernate學習筆記(3)基礎配置

來源:互聯網
上載者:User

標籤:hibernate   jdbc   資料庫   

一 JDBC連結

通常你希望SessionFactory來為你建立和緩衝(pool)JDBC串連. 如果你採用這種方式, 只需要如下例所示那樣,開啟一個Session: 

Session session = sessions.openSession(); // open a new Session
一旦你需要進行資料訪問時, 就會從串連池(connection pool)獲得一個JDBC串連. 
為了使這種方式工作起來, 我們需要向Hibernate傳遞一些JDBC串連的屬性. 我們現在將描述JDBC串連配置中最重要的設定. 
如果你設定如下屬性,Hibernate將使用java.sql.DriverManager來獲得(和緩衝)JDBC串連 : 

           Hibernate JDBC屬性


但Hibernate內建的串連池演算法相當不成熟. 它只是為了讓你快些上手,並不適合用於產品系統或效能測試中。 出於最佳效能和穩定性考慮你應該使用第三方的串連池。
只需要用特定串連池的設定替換 hibernate.connection.pool_size即可。這將關閉Hibernate內建的串連池. 例如, 你可能會想用C3P0. C3P0是一個隨Hibernate一同分發的開源的JDBC串連池, 它位於lib目錄下。 如果你設定了hibernate.c3p0.*相關的屬性, Hibernate將使用 C3P0ConnectionProvider來緩衝JDBC串連. 如果你更原意使用Proxool, 請參考發 行包中的hibernate.properties併到Hibernate網站擷取更多的資訊. 

二 可選的配置屬性

有大量屬效能用來控制Hibernate在運行期的行為. 它們都是可選的, 並擁有適當的預設值. 

Hibernate配置屬性 




三 SQL方言

你應當總是為你的資料庫將hibernate.dialect屬性設定成正確的 org.hibernate.dialect.Dialect子類. 如果你指定一種方言, Hibernate將為上面列出的一些屬性使用合理的預設值, 為你省去了手工指定它們的功夫.

Hibernate SQL方言 (hibernate.dialect)




四  XML設定檔
另一個配置方法是在hibernate.cfg.xml檔案中指定一套完整的配置. 這個檔案可以當成hibernate.properties的替代。 若兩個檔案同時存在,它將覆蓋前者的屬性. 
XML設定檔被預設是放在CLASSPATH的根目錄下. 這是一個例子: 
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC    "-//Hibernate/Hibernate Configuration DTD//EN"    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <!-- 以/jndi/name綁定到JNDI的SessionFactory執行個體 -->    <session-factory        name="java:hibernate/SessionFactory">        <!-- 屬性 -->        <property name="connection.datasource">java:/comp/env/jdbc/MyDB</property>        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>        <property name="show_sql">false</property>        <property name="transaction.factory_class">            org.hibernate.transaction.JTATransactionFactory        </property>        <property name="jta.UserTransaction">java:comp/UserTransaction</property>        <!-- 映射定義檔案 -->        <mapping resource="org/hibernate/auction/Item.hbm.xml"/>        <mapping resource="org/hibernate/auction/Bid.hbm.xml"/>        <!-- 緩衝設定 -->        <class-cache class="org.hibernate.auction.Item" usage="read-write"/>        <class-cache class="org.hibernate.auction.Bid" usage="read-only"/>        <collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/>    </session-factory></hibernate-configuration>

如你所見, 這個方法優勢在於,在設定檔中指出了映射定義檔案的名字. 一旦你需要調整Hibernate的緩衝, hibernate.cfg.xml也是更方便. 注意,使用hibernate.properties還是 hibernate.cfg.xml完全是由你來決定, 除了上面提到的XML文法的優勢之外, 兩者是等價的. 
使用XML配置,使得啟動Hibernate變的異常簡單, 如下所示,一行代碼就可以搞定:

SessionFactory sf = new Configuration().configure().buildSessionFactory();

你可以使用如下代碼來添加一個不同的XML設定檔 
SessionFactory sf = new Configuration()    .configure("catdb.cfg.xml")    .buildSessionFactory();











Hibernate學習筆記(3)基礎配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.