通过SQLWarning访问原始查询

时间:2013-11-20 19:01:24

标签: java postgresql jdbc

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

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

提前致谢,

1 个答案:

答案 0 :(得分:1)

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

  

警告以无提示方式链接到其方法导致其报告的对象

这意味着SQLWarning被添加到java.sql.Statement(或其他JDBC对象),可以使用getWarnings()获取警告,该警告返回单个SQLWarning,一连串零或多个警告。