我想知道是否存在从SQLException / SQLWarning访问原始SQL查询的方法。我以为那不太可能,但是API文档中的句子Warnings are silently chained to the object whose method caused it to be reported给我带来了希望。

如果不可能的话,最好的方法是什么?从SQLWarning创建一个子类,该子类在发生异常的情况下可保存查询信息?还是每次我想进行SQL查询并要处理异常的类?

提前致谢,

最佳答案

SQLException(因此是SQLWarning)不包含已执行的语句。没有办法解决这个问题。您将需要以某种方式自己处理。理论上,驱动程序实现可以添加此信息,但是在JDBC规范和API之外这将是非标准的。


警告被静默地链接到其方法导致被报告的对象


这意味着将SQLWarning添加到java.sql.Statement(或其他JDBC对象),可以使用getWarnings()获得警告,该警告返回单个SQLWarning,该警告链包含零个或多个警告。

07-27 22:44