如果需要的話(huà),您可以自行提供JDBC連接物件給Hibernate使用,而無(wú)需透過(guò)配置文件設定JDBC來(lái)源,一個(gè)最簡(jiǎn)單的例子如下:
Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/HibernateTest?user=root&password=";java.sql.Connection conn = DriverManager.getConnection(url);SessionFactory sessionFactory = cfg.buildSessionFactory();Session session = sessionFactory.openSession(conn);
當然您也可以透過(guò)屬性文件hibernate.properties來(lái)配置JDBC來(lái)源,例如:
hibernate.show_sql = truehibernate.dialect = net.sf.hibernate.dialect.MySQLDialecthibernate.connection.driver_class = com.mysql.jdbc.Driverhibernate.connection.url = jdbc:mysql://localhost/HibernateTesthibernate.connection.username = caterpillarhibernate.connection.password = 123456
如果是透過(guò)XML文件hibernate.cfg.xml則是如下進(jìn)行配置:
<?xml version=‘1.0‘ encoding=‘big5‘?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration> <session-factory> <!-- 顯示實(shí)際操作資料庫時(shí)的SQL --> <property name="show_sql">true</property> <!-- SQL方言,這邊設定的是MySQL --> <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <!-- JDBC驅動(dòng)程式 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- JDBC URL --> <property name="connection.url">jdbc:mysql://localhost/HibernateTest</property> <!-- 資料庫使用者 --> <property name="connection.username">caterpillar</property> <!-- 資料庫密碼 --> <property name="connection.password">123456</property> <!-- 物件與資料庫表格映射文件 --> <mapping resource="User.hbm.xml"/> </session-factory></hibernate-configuration>
Hibernate在資料庫連接池的使用上是可選的,您可以使用C3P0連接池,當您的屬性文件中含有hibernate.c3p0.*的配置時(shí),就會(huì )自動(dòng)啟用C3P0連接池,而您的CLASSPATH中必須包括c3p0-0.8.4.5.jar,屬性文件hibernate.properties的配置範例如下:
hibernate.show_sql = truehibernate.dialect = net.sf.hibernate.dialect.MySQLDialecthibernate.connection.driver_class = com.mysql.jdbc.Driverhibernate.connection.url = jdbc:mysql://localhost/HibernateTesthibernate.connection.username = roothibernate.connection.password =hibernate.c3p0.min_size=5hibernate.c3p0.max_size=20hibernate.c3p0.timeout=1800hibernate.c3p0.max_statements=50
如果是使用hibernate.cfg.xml配置C3P0連接池的例子如下:
<?xml version=‘1.0‘ encoding=‘big5‘?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"><hibernate-configuration> <session-factory> <!-- 顯示實(shí)際操作資料庫時(shí)的SQL --> <property name="show_sql">true</property> <!-- SQL方言,這邊設定的是MySQL --> <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <!-- JDBC驅動(dòng)程式 --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- JDBC URL --> <property name="connection.url">jdbc:mysql://localhost/HibernateTest</property> <!-- 資料庫使用者 --> <property name="connection.username">root</property> <!-- 資料庫密碼 --> <property name="connection.password"></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> <!-- 物件與資料庫表格映射文件 --> <mapping resource="User.hbm.xml"/> </session-factory></hibernate-configuration>
您也可以使用Proxool或DBCP連接池,只要在配置文件中配置hibernate.proxool.或hibernate.dbcp. 等相關(guān)選項,這可以在hibernate的etc目錄中找hibernate.properties中的配置例子來(lái)參考,當然要記得在CLASSPATH 中加入相關(guān)的jar檔案。
如果您使用Tomcat的話(huà),您也可以透過(guò)它提供的DBCP連接池來(lái)取得連接,您可以先參考這邊的文章來(lái)設定Tomcat的DBCP連接池:
DBCP連接池設定 
設定好容器提供的DBCP連接池之後,您只要在配置文件中加入connection.datasource屬性,例如在hibernate.cfg.xml中加入:
<property name="connection.datasource">java:comp/env/jdbc/dbname</property>如果是在hibernate.properties中的話(huà),則加入:
hibernate.connection.datasource = java:comp/env/jdbc/dbname
聯(lián)系客服