共计 1193 个字符,预计需要花费 3 分钟才能阅读完成。
使用了 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>
更多 Oracle 相关信息见 Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-09/146810.htm