淺析Hibernate.cfg.xml配置
學習Hibernate時,經(jīng)常會遇到Hibernate.cfg.xml配置問題,這里將介紹Hibernate.cfg.xml配置問題的解決方法。
Hibernate的描述文件可以是一個properties屬性文件,也可以是一個xml文件。下面講一下Hibernate.cfg.xml配置。配置格式如下:
1. 配置數(shù)據(jù)源
可以Hibernate.cfg.xml配置JDBC,也可以配置JNDI.在本小節(jié)中講述數(shù)據(jù)源如何配置。
- <?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>
- <!-- 各屬性的配置-->
- <!—為true表示將Hibernate發(fā)送給數(shù)據(jù)庫的sql顯示出來 -->
- <property name="show_sql">true</property>
- <!-- SQL方言,這邊設定的是MySQL -->
- <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
- <!-- 一次讀的數(shù)據(jù)庫記錄數(shù) -->
- <property name="jdbc.fetch_size">50</property>
- <!-- 設定對數(shù)據(jù)庫進行批量刪除 --
- <property name="jdbc.batch_size">30</property>
- <!—下面為JNDI的配置 -->
- <!-- 數(shù)據(jù)源的名稱 -->
- <property name="connection.datasource">java:comp/env/jdbc/datasourcename</property>
- <!-- Hibernate的連接加載類 -->
- <property name="connection.provider_class">net.sf.hibernate.
connection.DatasourceConnectionProvider</property>- <property name="dialect">net.sf.hibernate.dialect.SQLServerDialect</property>
- <!—映射文件 -->
- <mapping resource="com/amigo/pojo/User.hbm.xml"/>
- <mapping resource="com/amigo/pojo/Org.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
2. c3p0連接池
c3p0連接池是Hibernate推薦使用的連接池,若需要使用該連接池時,需要將c3p0的jar包加入到classpath中。c3p0連接池的配置示例如下:
- <?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
- <!-- 顯示實際操作數(shù)據(jù)庫時的SQL -->
- <property name="show_sql">true</property>
- <!-- SQL方言,這邊設定的是MySQL -->
- <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
- <!--驅(qū)動程序,在后續(xù)的章節(jié)中將講述mysql、sqlserver和Oracle數(shù)據(jù)庫的配置 -->
- <property name="connection.driver_class">……</property
- <!-- JDBC URL -->
- <property name="connection.url">……</property>
- <!-- 數(shù)據(jù)庫用戶名 -->
- <property name="connection.username">user</property>
- <!-- 數(shù)據(jù)庫密碼 -->
- <property name="connection.password">pass</property>
- <property name="c3p0.min_size">5</property
- <property name="c3p0.max_size">20</property>
- <property name="c3p0.timeout">1800</property>
- <property name="c3p0.max_statements">50</property>
- <!-- 對象與數(shù)據(jù)庫表格映像文件 -->
- <mapping resource="com/amigo/pojo/User.hbm.xml"/>
- <mapping resource="com/amigo/pojo/Org.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>
在上述配置中,Hibernate根據(jù)配置文件生成連接,再交給c3p0管理。
【編輯推薦】