我想知道是否有办法从SQLException / SQLWarning访问原始SQL查询。我认为这不太可能,但API文档中的句子Warnings are silently chained to the object whose method caused it to be reported
给我带来了一些希望。
如果不可能,最好的方法是什么?从SQLWarning创建一个子类,在异常的情况下保存查询信息?或者每次我想要进行SQL查询并处理异常时调用的类?
提前致谢,
答案 0 :(得分:1)
SQLException
(及其SQLWarning
)不包含已执行的语句。没有办法解决这个问题。您需要以某种方式自己处理。从理论上讲,驱动程序实现可以添加此信息,但这在JDBC规范和API之外是非标准的。
警告以无提示方式链接到其方法导致其报告的对象
这意味着SQLWarning
被添加到java.sql.Statement
(或其他JDBC对象),可以使用getWarnings()
获取警告,该警告返回单个SQLWarning
,一连串零或多个警告。