【发布时间】:2013-11-21 08:31:54
【问题描述】:
如何在 java + Spring 中记录 sql 查询(使用实际参数)。
我的开发环境
- Java
- Spring JdbcTemplate。
让我详细说明这个问题。
我的伪代码是这样的。
String sql = "SELECT COLUMN1 FROM MYTABLE WHERE COLUMN2=? "
List<MyVO> MyVOList = getJdbcTemplate().query(sql, new Object[] { date },
new RowMapper...
现在,如果我想记录 sql - 使用发送给它的实际日期 - 我不知道该怎么做。
选项 1: 我总是可以单独记录 SQL 并记录参数,但我希望在日志中包含实际的 SQL,以便支持人员可以复制粘贴 SQL 并从中运行它如果需要,可以使用 SQL 客户端。
选项 2: 我可以考虑做一个字符串替换并在 java 中创建 SQL,然后记录它。但是,这总是会因为一些怪异的编码错误而导致实际 SQL 和记录的 SQL 不同的可能性。
是否有人尝试解决此问题并取得任何进展?
请分享。谢谢。
注意:我已经阅读了Log SQL that is communicated with the database 的帖子。使用此解决方案不是我的选择。我在企业设置中工作,而 jdbcdslog-exp 不在批准的软件列表中。
【问题讨论】:
-
我以为我已经澄清了我没有使用 Hibernate @CHowdappaM
-
因此,您需要自己编写解决方案,而不是使用现成的框架。以其他方式说服他们,可以节省您的时间和挫败感。
-
嗯 - 目前我只是在查看这个论坛,看看是否有一个简单的解决方案 - 在我的限制范围内工作。如果不得不破解我自己的解决方案,我会回去说不。但在此之前,我只想做我的尽职调查。