返回博文列表
使用 Druid LogFilter 打印可执行的 SQL
开发测试阶段想拿到完整可执行的 SQL,除了 log4jdbc 还有更轻的办法——Druid 内置的 LogFilter,一行配置即可输出带真实参数的 SQL。
如梦技术 3 分钟
# jfinal # druid
简介
通常在java项目开发为了防止sql注入我们通常都采用的预编译的sql,采用“?”号挂参,如下:
sql
SELECT * FROM blog WHERE id = ?往往在开发测试阶段能获取到完整的可执行的sql能帮我们及时的发现和定位问题。就有了很多朋友使用log4jdbc来记录SQL信息。
Druid中LogFilter的配置项
如下图我们可以看到有一项statementExecutableSqlLogEnable默认为false

配置
这里我们以JFinal和Log4j最为演示的例子。
java代码
java
// 配置Druid数据库连接池插件
DruidPlugin druidPlugin = new DruidPlugin(jdbcUrl, user, password);
// 配置log插件
Log4jFilter logFilter = new Log4jFilter();
logFilter.setStatementLogEnabled(false);
logFilter.setStatementLogErrorEnabled(true);
logFilter.setStatementExecutableSqlLogEnable(true);
druidPlugin.addFilter(logFilter);log4j.properties中添加
properties
log4j.logger.druid.sql.Statement=DEBUGdruid中支持的日志Filter
java
Log4jFilter
Slf4jLogFilter
Log4j2Filter
CommonsLogFilter开源推荐
- Spring boot 微服务高效开发
mica工具集:https://gitee.com/596392912/mica Avue一款基于vue可配置化的神奇框架:https://gitee.com/smallweigit/avuepig宇宙最强微服务(架构师必备):https://gitee.com/log4j/pigSpringBlade完整的线上解决方案(企业开发必备):https://gitee.com/smallc/SpringBladeIJPay支付SDK让支付触手可及:https://gitee.com/javen205/IJPay- 加入【如梦技术】Spring QQ群:479710041,了解更多。
微信公众号

精彩内容每日推荐!!!