一.hibernate4.0之前的配置CP30
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="connection.url">
jdbc:sqlserver://localhost:1433;databaseName=test
</property>
<!-- C3P0连接池设定 -->
<property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.max_size">100</property>
<property name="hibernate.c3p0.min_size">10</property>
<property name="hibernate.c3p0.timeout">120</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">120</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接 是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
<!--最大空闲时间 ,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
<property name="hibernate.c3p0.maxIdleTime">0</property>
<!--c3p0是异步操作的,缓慢的JDBC操作通过帮助进程 完成。扩展这些操
作可以有效的提升性能通过多线程实现多个操作同时被执行。Default: 3-->
<property name="hibernate.c3p0.numHelperThreads">10</property>
<!--每60秒 检查所有连接池中的空闲连接 。Default: 0 -->
<property name="hibernate.c3p0.idleConnectionTestPeriod">60</property>
<!--如果设为true那么在取得连接的同时将校验连接的有效性 。Default: false -->
<property name="hibernate.c3p0.testConnectionOnCheckin">true</property>
<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候 都将校验其有效性 。建议使用
idleConnectionTestPeriod或automaticTestTable等方法来提升连接测试的性能。Default: false -->
<property name="hibernate.c3p0.testConnectionOnCheckout">false</property>
<!-- C3P0连接池设定 -->
<property name="connection.username">sa</property>
<property name="connection.password">sa</property>
<property name="connection.driver_class">
com.microsoft.sqlserver.jdbc.SQLServerDriver
</property>
<property name="connection.autocommit">true</property>
<property name="show_sql">true</property>
</ssion-factory>
</hibernate-configuration>
二.hibernate4.0之后的配置简化了,中间不用指定C3P0ConnectionProvider
Hibernate4.0之后所带的jar包自带了这个配置。
jar包如下:
c3p0-0.9.2.1.jar
hibernate-c3p0-4.3.5.Final.jar
mchange-commons-java-0.2.3.4.jar
配置如下:
<session-factory>
<property name="dialect">test.hibernate.MySQLServerDialect</property>
<property name="connection.url">jdbc:sqlserver://localhost:1433;databaseName=Test</property>
<property name="connection.username">sa</property>
<property name="connection.password">sa</property>
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hbm2ddl.auto">update</property>
<property name="myeclipse.connection.profile">sqlserver</property>
<property name="hibernate.c3p0.maxsize">20</property>
<!-- 指定连接池里最小连接数 -->
<property name="hibernate.cp30.minsize">1</property>
<!-- 指定连接池里的超时时常 -->
<property name="hibernate.cp30.timeout">5000</property>
<!-- 指定连接池里最大缓存多少个Statement对象 -->
<property name="hibernate.cp30.max_statements">100</property>
<property name="hibernate.cp30.idle_test_period">3000</property>
<property name="hibernate.cp30.acquire_increment">2</property>
<property name="hibernate.cp30.validate">true</property>
<property name="connection.autocommit">true</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>