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