是否可以使用jdbctemplate输出发送到mysql的sql?
我正在使用jdbctemplate 像这样:
getJdbcTemplate.update("update ....... values (?,?,?....?)", myObject.getProperty1(), ...);
我是否可以写出发送到 mysql 的结果 sql 的 logger.trace?
这将使我的调试过程更容易,因为我可以准确地看到 mysql 正在得到什么。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在 jdbc url 中,您可以动态添加以下属性以启用 mysql 语句日志记录:
jdbc:mysql://localhost:3306/sakila?profileSQL=true
您可以在此处阅读有关此内容的更多信息:
http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
阅读“调试/分析”部分中的属性因为这些的组合对于日志级别、日志输出等可以非常灵活。(例如记录器)
另一种方法是使用 jdbc 日志代理库,例如 http://code.google.com/p/log4jdbc/
In your jdbc url, you can dynamically add the following property to enable mysql statement logging:
jdbc:mysql://localhost:3306/sakila?profileSQL=true
You can read more about this here:
http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
Read up on the properties in the Debugging/Profiling section as a combination of these can be very flexible for log levels, log output etc. (eg. logger)
Another approach is to use a jdbc logging proxy library such as http://code.google.com/p/log4jdbc/
JdbcTemplate 在调试级别记录查询。您应该只需要在 org.springframework.jdbc.core.JdbcTemplate 上启用调试日志记录。
您还可以从连接池获取查询日志记录。例如,如果您使用的是 BoneCP,请打开 logStatementsEnabled 并将 com.jolbox.bonecp 记录器设置为在调试级别进行记录。使用 BoneCP 日志记录的优点是您可以获得准备好的语句占位符值。以下是同一查询的输出,显示了差异,其中PreparedStatementHandle 是 BoneCP 类。
JdbcTemplate logs queries at debug level. You should just need to enable debug logging on org.springframework.jdbc.core.JdbcTemplate.
You can also get query logging from your connection pool. For example, if you're using BoneCP, turn on logStatementsEnabled and set your com.jolbox.bonecp logger to log at the debug level. The advantage of using BoneCP's logging is that you get prepared statement placeholder values. Here's the output for the same query showing the difference, where PreparedStatementHandle is a BoneCP class.