gpt4 book ai didi

java - 结果集 "column not found"与 c3p0

转载 作者:行者123 更新时间:2023-11-29 00:29:39 24 4
gpt4 key购买 nike

我有一个对数据库的查询,结果是通过 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

最佳答案

c3p0 在内部测试连接的任何类型的异常,但来自此测试的异常不会被抛出或对客户端代码不可见。您看到它只是因为您在 DEBUG 级别记录 c3p0 输出。 c3p0 的东西应该记录在 INFO 以供正常使用。如果您以 DEBUG-ish 级别登录,您将看到各种警告消息和堆栈跟踪。

关于java - 结果集 "column not found"与 c3p0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17196790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com