在ssh项目中的中配置数据源c3p0

来源:互联网 发布:java内存机制 编辑:程序博客网 时间:2024/05/16 02:20

部分代码来自网上,黄绿色的字体就是c3p0 sqlserver2000连接池的设置,其中特别注意的''driverClass' , 'jdbcUrl', 'user' , 'password'区分大小写 ,并且要把c3p0-0.9.1-pre6.jar放到classpath中;

1.sqlserver2000

<?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/image/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="imageDao" name="imageDao"  class="com.oy.image.dao.hibernate.ImageDaoHibernate" abstract="false"  lazy-init="default" autowire="default" dependency-check="default">  <property name="sessionFactory">   <ref bean="sessionFactory" />  </property> </bean> <bean id="imageManager" name="imageManager"  class="com.oy.image.service.impl.ImageManagerImpl" abstract="false"  lazy-init="default" autowire="default" dependency-check="default">  <property name="imageDao">   <ref bean="imageDao" />  </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/image/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="imageDao" name="imageDao"  class="com.oy.image.dao.hibernate.ImageDaoHibernate" abstract="false"  lazy-init="default" autowire="default" dependency-check="default">  <property name="sessionFactory">   <ref bean="sessionFactory" />  </property> </bean> <bean id="imageManager" name="imageManager"  class="com.oy.image.service.impl.ImageManagerImpl" abstract="false"  lazy-init="default" autowire="default" dependency-check="default">  <property name="imageDao">   <ref bean="imageDao" />  </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="imageDao" name="imageDao"  class="com.oy.image.dao.hibernate.ImageDaoHibernate" abstract="false"  lazy-init="default" autowire="default" dependency-check="default">  <property name="sessionFactory">   <ref bean="sessionFactory" />  </property> </bean> <bean id="imageManager" name="imageManager"  class="com.oy.image.service.impl.ImageManagerImpl" abstract="false"  lazy-init="default" autowire="default" dependency-check="default">  <property name="imageDao">   <ref bean="imageDao" />  </property> </bean>    </beans>


原创粉丝点击