我想知道是否存在从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
,该警告链包含零个或多个警告。