【发布时间】:2013-06-16 07:33:57
【问题描述】:
我有一个对数据库的查询,结果是通过java.sql.ResultSet获得的,因为这个查询是动态的,返回的列数可能是 5 或 7,过去使用相同的代码生成一个“未找到列异常”并包含在以下捕获中:
try{
sTemp = this.rsResults.getString("col3");
}catch(Exception e){}
但是现在使用相同的 try 和 catch(唯一的区别是现在我使用 combopooldatasource 和它们的连接),我得到了两个不属于 catch 的异常。
我该如何改进这一点,有没有更好的方法来检查列是否存在?
c3p0 是否必须基于(SQLState: S0022) column not found error 强制测试连接?
Error n1 - in the com.mchange.v2.c3p0.impl.NewProxyResultSet.getString qlUtils.toSQLException() - Attempted to convert SQLException to SQLException. Leaving it alone. [SQLState: S0022; errorCode: 0]
java.sql.SQLException: Column 'col3' not found.
Error n2 - DefaultConnectionTester.statusOnException() - Testing a Connection in response to an Exception:
java.sql.SQLException: Column 'col3' not found.
ps:使用的驱动是一样的org.gjt.mm.mysql.Driver
【问题讨论】: