之前看到的分享基本围绕“日志”功能展开,尽管有些已经挺简单了,但还是觉得可以在操作步骤上简化。现介绍如下:
一、基本需求:开发阶段,需要检查最终执行的sql语句——不仅仅是带有“?”的预编译语句,还应该包括各个字段的参数。
拒绝形如:select * from worker where id = ? or name = ?
改造目标:select * from worker where id = 2 or name = WangWei
二、基本思路:为数据源插件DruidPlugin添加过滤Filter。
三、步骤:
1、新建类MyDruidFilterpublic class MyDruidFilter extends FilterAdapter {
@Override
public void statement_close(FilterChain chain, StatementProxy statement) throws SQLException {
super.statement_close(chain, statement);
Map lParameters = statement.getParameters();
String lSql = statement.getBatchSql();
if(StrKit.notBlank(lSql)){
for (Map.Entry lEntry : lParameters.entrySet()){
JdbcParameter lValue = lEntry.getValue();
if(lValue