使用了c3p0的连接池,在建立连接时,c3p0会在数据库连接一张test表,用来验证连接。 现在情况是 由于其他应用先前也在这个库建立了一张test表,用来存储业务数据,结果c3p0无法新建一张表来处理连接。 报错截图: 所以每次查询时,虽然用户名、密码等所有连接信息都正确。也会因为test表的问题无法执行查询。 解决办法:修改c3p0的配置属性 将testConnectionOnCheckin 改为false 或者 automaticTestTable修改为其他未使用的表名 - <bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource" >
-
-
- <property name="driverClass" value="${db.driverClassName}" />
- <property name="jdbcUrl" value="${db.url}" />
- <property name="user" value="${db.username}" />
- <property name="password" value="${db.password}" />
-
- <property name="maxPoolSize" value="${c3p0.max_size}" />
-
- <property name="minPoolSize" value="${c3p0.min_size}" />
-
- <property name="initialPoolSize" value="${c3p0.initial_pool_size}" />
-
- <property name="maxIdleTime" value="${c3p0.max_idle_time}" />
-
- <property name="acquireIncrement" value="${c3p0.acquire_increment}" />
- <!-- 方法1:修改这里的连接属性为false -->
- <property name="testConnectionOnCheckin" value="true"/>
- <!-- 方法2:修改test为其他在数据库中未使用的表名 -->
- <property name="automaticTestTable" value="test"/>
-
- </bean>
复制代码
|