- <!-- C3P0數據源管理連接池 -->
- <?xml version='1.0' encoding='utf-8'?>
- <!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
-
- <hibernate-configuration>
- <session-factory>
- <!-- Database connection settings -->
- <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
- <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
- <property name="connection.username">root</property>
- <property name="connection.password">root</property>
-
- <!-- JDBC connection pool (use the built-in)
- 不使用內建連接詞,hibernate參考手冊的一段
- Hibernate 自帶的連接池算法相當不成熟。它只是為了讓你快些上手,並不適合用於產品系統或性能測試中。
- 出於最佳性能和穩定性考慮你應該使用第三方的連接池。只需要用特定連接池的設置替換 hibernate.connection.pool_size 即可。
-
- <property name="connection.pool_size">5</property>
- -->
- <!-- 自建c3p0連接池,要加入c3p0-0.9.1.jar-->
-
- <property name="hibernate.c3p0.min_size">5</property>
- <property name="hibernate.c3p0.max_size">20</property>
- <property name="hibernate.c3p0.timeout">1800</property>
- <!-- 最大的PreparedStatement的數量 -->
- <property name="hibernate.c3p0.max_statements">100</property>
- <!--配置默認schema
- <property name="hibernate.default_schema" value="myschema"/>
- -->
- <!-- SQL dialect -->
- <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
-
- <!-- Enable Hibernate's automatic session context management -->
- <property name="current_session_context_class">thread</property>
-
- <!-- Disable the second-level cache -->
- <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
-
- <!-- Echo all executed SQL to stdout -->
- <property name="show_sql">true</property>
-
- <!-- Drop and re-create the database schema on startup -->
- <property name="hbm2ddl.auto">update</property>
-
- <mapping resource="net/hnspi/entity/Record.hbm.xml" />
- <mapping resource="net/hnspi/entity/Account.hbm.xml" />
-
- </session-factory>
- </hibernate-configuration>
數據源配置:
[html]
- <?xml version="1.0" encoding="UTF-8"?>
- <Context path="/">
- <Resource auth="Container"
- driverClassName="com.mysql.jdbc.Driver"
- type="javax.sql.DataSource"
- name="jdbc/datasuourcePool"
- url="jdbc:mysql://127.0.0.1:3306/hibernate?useUnicode=true&characterEncoding=GBK&autoReconnect=true"
- username="zhangh"
- password="123456"
- logAbandoned="true"
- maxActive="5"
- maxIdle="2"
- maxWait="5000"
- removeAbandoned="true"
- removeAbandonedTimeout="300"
- testOnReturn="true"
- testWhileIdle="true"
- validationQuery="select now()"/>
- </Context>
容器管理連接池,連接通過數據源取得
注意:數據庫連接jar包要放到Tomcat(小弟用的是tomcat)的lib目錄,不然會報找不到Driver的錯誤。我想原因大概是由容器管理連接池,就是在服務器啟動的時候,就會建立好連接池,這個時候肯定是需要數據庫連接的jar包。也就是連接的jar包在應用運行之前就已經使用到了,所以放在應用的lib下也不會解決問題。
[html]
- <?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>
- <!-- 交由容器管理數據庫連接池 -->
- <property name="connection.datasource">java:comp/env/jdbc/datasuourcePool</property>
- <property name="connection.provider_class">org.hibernate.connection.DatasourceConnectionProvider</property>
-
-
- <!-- 配置默認schema <property name="hibernate.default_schema" value="myschema"/> -->
- <!-- SQL dialect -->
- <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
-
- <!-- Enable Hibernate's automatic session context management -->
- <property name="current_session_context_class">thread</property>
-
- <!-- Disable the second-level cache -->
- <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
-
- <!-- Echo all executed SQL to stdout -->
- <property name="show_sql">true</property>
-
- <!-- Drop and re-create the database schema on startup -->
- <property name="hbm2ddl.auto">update</property>
-
- <!-- 配置實體映射 -->
- <mapping resource="com/akwolf/bean/Event.hbm.xml"/>
- </session-factory>
- </hibernate-configuration>