在默認通過myeclipse生成的配置里,spring使用的是apache的dbcp連接池

          <bean id="dataSource"
            class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName"
             value="com.mysql.jdbc.Driver">
            </property>
            <property name="url"
             value="jdbc:mysql://localhost:3306/mysql">
            </property>
            <property name="username" value="root"></property>
            <property name="password" value="root"></property>
           </bean>

          如果改為C3P0則為:

          <bean id="propertyConfigurer"
                  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
                  <property name="location">
                      <value>classpath:jdbc.properties</value>
                  </property>
              </bean>
          <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                  <property name="driverClass" value="com.mysql.jdbc.Driver" />
                  <property name="jdbcUrl" value="${jdbc.url}" />
                  <property name="user" value="${jdbc.username}" />
                  <property name="password" value="${jdbc.password}" />
                  <property name="autoCommitOnClose" value="true"/>
                  <property name="checkoutTimeout" value="${cpool.checkoutTimeout}"/>
                  <property name="initialPoolSize" value="${cpool.minPoolSize}"/>
                  <property name="minPoolSize" value="${cpool.minPoolSize}"/>
                  <property name="maxPoolSize" value="${cpool.maxPoolSize}"/>
                  <property name="maxIdleTime" value="${cpool.maxIdleTime}"/>
                  <property name="acquireIncrement" value="${cpool.acquireIncrement}"/>
                  <property name="maxIdleTimeExcessConnections" value="${cpool.maxIdleTimeExcessConnections}"/>
              </bean>
          jdbc.properties:

          # Database URL
          jdbc.url=jdbc:mysql://192.168.0.25"3306/db

          # Database login information
          jdbc.username=root
          jdbc.password=

          # Time to wait for an open connection before timing out
          # (in milliseconds)
          cpool.checkoutTimeout=5000

          # Connection pool size
          cpool.minPoolSize=5
          cpool.maxPoolSize=40

          # How long to keep unused connections around(in seconds)
          # Note: MySQL times out idle connections after 8 hours(28,800 seconds)
          # so ensure this value is below MySQL idle timeout
          cpool.maxIdleTime=25200

          # How long to hang on to excess unused connections after traffic spike
          # (in seconds)
          cpool.maxIdleTimeExcessConnections=1800

          # Acquiring new connections is slow, so eagerly retrieve extra connections
          # when current pool size is reached
          cpool.acquireIncrement=5

          或者將上面的3部分寫成一個:
          <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
                <property name="driverClass">
                  <value>${jdbc.driverClassName}</value>
                </property>
                <property name="jdbcUrl">
                  <value>${jdbc.url}</value>
                </property>
                <property name="user">
                 <value>${jdbc.username}</value>
                </property>
                <property name="password">
                 <value>${jdbc.password}</value>
                </property>
                <property name="initialPoolSize"><value>10</value></property>
                <property name="minPoolSize"><value>5</value></property>
                <property name="maxPoolSize"><value>30</value></property>
                <property name="acquireIncrement"><value>5</value></property>
                <property name="maxIdleTime"><value>10</value></property>
                <property name="maxStatements"><value>0</value></property>
              </bean>

          如果使用的是受管理的J2EE服務器,則在spring中配置為JNDI連接:
          <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
          <property name="jndiName">
          <value>java:comp/env/jndi/xxx</value>
          </property>
          </bean>

          如果在應用里有獨自使用hibernate,則在spring中配置hibernate連接池,使用C3P0如下:
          <bean   id="DataSource"  
            class="org.apache.commons.dbcp.BasicDataSource">  
            <property   name="driverClassName">  
            <value>oracle.jdbc.driver.OracleDriver</value>  
            </property>  
            <property   name="url">  
            <value>jdbc:oracle:thin:@172.16.20.241:1521:dbsvr</value>  
            </property>  
            <property   name="username">  
            <value>hl3000</value>  
            </property>  
            <property   name="password">  
            <value>hldw3101</value>  
            </property>  
            </bean>  
            <bean   id="SessionFactory"  
            class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
            <property   name="dataSource">  
            <ref   bean="DataSource"   />  
            </property>  
            <property   name="hibernateProperties">  
            <props>  
            <prop   key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>  
            <prop   key="hibernate.show_sql">true</prop>  
             
            <!--   C3P0連接池配置   -->  
            <prop   key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>  
            <prop   key="hibernate.c3p0.max_size">20</prop>  
            <prop   key="hibernate.c3p0.min_size">5</prop>  
            <prop   key="hibernate.c3p0.timeout">120</prop>  
            <prop   key="hibernate.c3p0.max_statements">100</prop>  
            <prop   key="hibernate.c3p0.idle_test_period">120</prop>  
            <prop   key="hibernate.c3p0.acquire_increment">2</prop>  
            <prop   key="myeclipse.connection.profile">hl3000</prop>  
            </props>  
            </property>  
            <property   name="mappingResources">  
            <list>  
            <value>com/hl3000/DBLogic/POJO/PermUserAccount.hbm.xml</value>  
            </list>  
            </property>  
            </bean> 

          spring中配置獨立使用hibernate時使用jndi的配置:

          hibernate.dialect = net.sf.hibernate.dialect.MySQLDialect
          hibernate.connection.datasource=java:comp/env/jdbc/SAMPLEDB
          hibernate.show_sql=true

          如果是使用不受管理的Servlet容器如Tomcat,也可以使用jndi的方式配置,需要在tomcat中配置數據源,在server.xml中增改大致如下:

               <Resource name="jdbc/testDb" auth="Container"
                              type="javax.sql.DataSource"/>
                    <ResourceParams name="jdbc/testDB">\\數據源的名稱
                      <parameter><name>username</name><value>root</value></parameter>數據庫的名稱
                      <parameter><name>password</name><value>password</value></parameter>數據庫密碼
                      <parameter><name>driverClassName</name>
                        <value>org.gjt.mm.mysql.Driver</value></parameter>\\要加載的驅動
                      <parameter><name>url</name>
                        <value>jdbc:mysql://172.20.0.73/rk?</value></parameter>\\要連接的URL
                    </ResourceParams>

          posted on 2008-03-19 12:09 lzj520 閱讀(5339) 評論(0)  編輯  收藏 所屬分類: Spring個人學習日記Hibernate
          主站蜘蛛池模板: 黄大仙区| 宜君县| 五峰| 威海市| 武城县| 黄龙县| 屏边| 宣武区| 灵武市| 邮箱| 维西| 昭通市| 巫溪县| 长丰县| 绩溪县| 梅河口市| 闵行区| 新营市| 富民县| 吴江市| 库尔勒市| 神木县| 仪征市| 商城县| 峨山| 龙海市| 西昌市| 永吉县| 永兴县| 吉木乃县| 瑞安市| 昭平县| 千阳县| 日喀则市| 宁武县| 沈阳市| 营口市| 民丰县| 察哈| 三台县| 红安县|