生活随笔
收集整理的這篇文章主要介紹了
在ssh项目中的中配置数据源c3p0
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?部分代碼來自網上,黃綠色的字體就是c3p0 sqlserver2000連接池的設置,其中特別注意的是''driverClass' , 'jdbcUrl', 'user' , 'password'區分大小寫 ,并且要把c3p0-0.9.1-pre6.jar放到classpath中;
1.sqlserver2000
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- Hibernate SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/oy/p_w_picpath/model/LoginUser.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.connection.release_mode">auto</prop> <prop key="hibernate.autoReconnect">true</prop> </props> </property> </bean> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </property> <property name="jdbcUrl"> <value>jdbc:microsoft:sqlserver://localhost:1433;databaseName=users</value> </property> <property name="user"> <value>bruce</value> </property> <property name="password"> <value>bruce</value> </property> <!--連接池中保留的最小連接數。--> <property name="minPoolSize"> <value>5</value> </property> <!--連接池中保留的最大連接數。Default: 15 --> <property name="maxPoolSize"> <value>30</value> </property> <!--初始化時獲取的連接數,取值應在minPoolSize與maxPoolSize之間。Default: 3 --> <property name="initialPoolSize"> <value>10</value> </property> <!--最大空閑時間,60秒內未使用則連接被丟棄。若為0則永不丟棄。Default: 0 --> <property name="maxIdleTime"> <value>60</value> </property> <!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 --> <property name="acquireIncrement"> <value>5</value> </property> <!--JDBC的標準參數,用以控制數據源內加載的PreparedStatements數量。但由于預緩存的statements 屬于單個connection而不是整個連接池。所以設置這個參數需要考慮到多方面的因素。 如果maxStatements與maxStatementsPerConnection均為0,則緩存被關閉。Default: 0--> <property name="maxStatements"> <value>0</value> </property> <!--每60秒檢查所有連接池中的空閑連接。Default: 0 --> <property name="idleConnectionTestPeriod"> <value>60</value> </property> <!--定義在從數據庫獲取新連接失敗后重復嘗試的次數。Default: 30 --> <property name="acquireRetryAttempts"> <value>30</value> </property> <!--獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常。但是數據源仍有效 保留,并在下次調用getConnection()的時候繼續嘗試獲取連接。如果設為true,那么在嘗試 獲取連接失敗后該數據源將申明已斷開并永久關閉。Default: false--> <property name="breakAfterAcquireFailure"> <value>true</value> </property> <!--因性能消耗大請只在需要的時候使用它。如果設為true那么在每個connection提交的 時候都將校驗其有效性。建議使用idleConnectionTestPeriod或automaticTestTable 等方法來提升連接測試的性能。Default: false --> <property name="testConnectionOnCheckout"> <value>false</value> </property> </bean><bean id="p_w_picpathDao" name="p_w_picpathDao" class="com.oy.p_w_picpath.dao.hibernate.ImageDaoHibernate"abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property></bean><bean id="p_w_picpathManager" name="p_w_picpathManager" class="com.oy.p_w_picpath.service.impl.ImageManagerImpl"abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="p_w_picpathDao"> <ref bean="p_w_picpathDao" /> </property></bean>
</beans>
2.mysql
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass"> <value>com.mysql.jdbc.Driver</value> </property> <property name="jdbcUrl"> <value>jdbc:mysql://192.168.0.1:3306/DBName?useUnicode=true&characterEncoding=UTF-8</value> </property> <property name="user"> <value>root</value> </property> <property name="password"> <value>root</value> </property> <!-- 連接池中保留的最小連接數. --> <property name="minPoolSize"> <value>5</value> </property> <!-- 連接池中保留的最大連接數。Default: 15 --> <property name="maxPoolSize"> <value>30</value> </property> <!-- 初始化時獲取的連接數,取值應在minPoolSize與maxPoolSize之間。Default: 3 --> <property name="initialPoolSize"> <value>10</value> </property> <!-- 最大空閑時間,60秒內未使用則連接被丟棄。若為0則永不丟棄。Default: 0 --> <property name="maxIdleTime"> <value>60</value> </property> <!-- 當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數。Default: 3 --> <property name="acquireIncrement"> <value>5</value> </property> <!-- JDBC的標準參數,用以控制數據源內加載的PreparedStatements數量。但由于預緩存的statements 屬于單個connection而不是整個連接池。所以設置這個參數需要考慮到多方面的因素。 如果maxStatements與maxStatementsPerConnection均為0,則緩存被關閉。Default: 0 --> <property name="maxStatements"> <value>0</value> </property> <!-- 每60秒檢查所有連接池中的空閑連接。Default: 0 --> <property name="idleConnectionTestPeriod"> <value>60</value> </property> <!-- 定義在從數據庫獲取新連接失敗后重復嘗試的次數。Default: 30 --> <property name="acquireRetryAttempts"> <value>30</value> </property> <!-- 獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常。但是數據源仍有效 保留,并在下次調用getConnection()的時候繼續嘗試獲取連接。如果設為true,那么在嘗試 獲取連接失敗后該數據源將申明已斷開并永久關閉。Default: false--> <property name="breakAfterAcquireFailure"> <value>true</value> </property> <!-- 因性能消耗大請只在需要的時候使用它。如果設為true那么在每個connection提交的 時候都將校驗其有效性。建議使用idleConnectionTestPeriod或automaticTestTable 等方法來提升連接測試的性能。Default: false --> <property name="testConnectionOnCheckout"> <value>false</value> </property></bean> <!-- Hibernate SessionFactory --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingResources"> <list> <value>com/oy/p_w_picpath/model/LoginUser.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.connection.release_mode">auto</prop> <prop key="hibernate.autoReconnect">true</prop> </props> </property></bean> <bean id="p_w_picpathDao" name="p_w_picpathDao" class="com.oy.p_w_picpath.dao.hibernate.ImageDaoHibernate"abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property></bean><bean id="p_w_picpathManager" name="p_w_picpathManager" class="com.oy.p_w_picpath.service.impl.ImageManagerImpl"abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="p_w_picpathDao"> <ref bean="p_w_picpathDao" /> </property></bean>
</beans>
3.oracle
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="driverClass"> <value>oracle.jdbc.driver.OracleDriver</value> </property> <property name="jdbcUrl"> <value>jdbc:oracle:thin:@192.168.0.1:1521:orcl</value> </property> <property name="user"> <value>username</value> </property> <property name="password"> <value>password</value> </property> <property name="minPoolSize"> <value>10</value> </property> <property name="maxPoolSize"> <value>20</value> </property> <property name="initialPoolSize"> <value>10</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"></ref> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.cache.use_query_cache"> true</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop> <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop> <prop key="hibernate.query.substitutions">true 1, false 0, yes 'Y', no 'N'</prop> <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop> <prop key="hibernate.use_outer_join">true</prop> <prop key="hibernate.prepare_sql">true</prop> <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop> </props> </property> <property name="mappingResources"> <list> <value>xxx/xx/xx.hbm.xml</value> <value>xxx/xx/xx.hbm.xml</value> </list> </property> </bean> <bean id="p_w_picpathDao" name="p_w_picpathDao" class="com.oy.p_w_picpath.dao.hibernate.ImageDaoHibernate"abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property></bean><bean id="p_w_picpathManager" name="p_w_picpathManager" class="com.oy.p_w_picpath.service.impl.ImageManagerImpl"abstract="false" lazy-init="default" autowire="default" dependency-check="default"> <property name="p_w_picpathDao"> <ref bean="p_w_picpathDao" /> </property></bean>
</beans>
轉載于:https://blog.51cto.com/3001448/1205795
總結
以上是生活随笔為你收集整理的在ssh项目中的中配置数据源c3p0的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。