是否有可能获得导致Spring DataAccessException的SQL查询?

时间:2016-09-05 00:02:48

标签: spring logging jdbctemplate

我有一个使用JdbcTemplate在MySQL数据库上执行查询的应用程序。如果JdbcTemplate抛出org.springframework.dao.DataAccessException,它会记录异常的堆栈跟踪。但是,我还想包含导致引发异常的SQL查询。是否有一种简单的方法可以不涉及为每个使用JdbcTemplate的地方编写自定义错误消息?

1 个答案:

答案 0 :(得分:1)

如果您只打算在异常期间记录SQL语句,则可能必须编写自己的JdbcTemplate自定义子类并更改日志记录前置条件,如Github中的源代码所示。

如果不是这种情况,您可以考虑以下事项。

Spring documentation开始,所有SQL语句都以DEBUG级别记录。

  

此类发出的所有SQL都记录在与模板实例的完全限定类名对应的类别下的DEBUG级别(通常是JdbcTemplate,但如果您使用的是JdbcTemplate类的自定义子类,则可能会有所不同)

您还可以通过将profileSQL设置为true来更改Jdbc网址以跟踪SQL。

MySQl Connection Reference Documentation