解决方案 »

  1.   

    给你参考一下我项目的连接池配置: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="initialSize" value="1" />
    <property name="minIdle" value="1" />
    <property name="maxActive" value="100" />
    <property name="maxIdle" value="20" />
    <property name="maxWait" value="1000" />
    </bean>
      

  2.   


    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${driver}" />
    <property name="url" value="${url}" />
    <property name="username" value="${user}" />
    <property name="password" value="${password}" />
    <!-- data source configuration -->
    <property name="initialSize" value="60" /><!-- initial connections -->
    <property name="maxActive" value="100" /><!-- MAX connections -->
    <property name="maxIdle" value="100" /><!-- MAX idle connections -->
    <property name="minIdle" value="5" /><!-- MIN idle connections -->
    <property name="testWhileIdle" value="true" />
    <property name="testOnBorrow" value="true" />
    <property name="testOnReturn" value="true" />
    <property name="timeBetweenEvictionRunsMillis" value="20000" />
    <property name="numTestsPerEvictionRun" value="100" />
    <property name="removeAbandoned" value="true"></property>
    <property name="removeAbandonedTimeout" value="180"></property>
    <property name="maxWait" value="10000"></property>
    <property name="validationQuery" value="select 1" />
    <property name="logAbandoned" value="true"/>
    </bean>
      

  3.   

    问题会不会在你的事务管理上,每次查询后都吧connect关掉了吧。
      

  4.   

    你做单元测试,第一个方法连接查询到数据库肯定开启connection ,然后执行完查询操作是不是把connection 关掉了导致第二个方法再连接查询就会报connection is closed 。