Mybatis-Sql日志输出:将绑定变量?替换为实际值及Sql执行耗时
   来源:用Java打酱油     2020年04月15日 10:24

对于数据库操作,我们希望的是:输出每条SQL,且?可以被实际的参数替换;每条SQL执行耗时,方便日志工具来监控耗时较长的SQL;SQL日志的输出级别可以单独控制;

示例:SQL:[update car set user_id = 1, name = "AUDI", price = 300000 where id = 1]执行耗时[2ms]Mybatis支持插件开发,允许我们通过插件的方式来增强Sql相关信息输出:Executor(update、query、flushStatements、commint、rollback、getTransaction、close、isClosed)ParameterHandler(getParameterObject、setParameters)ResultSetHandler(handleResultSets、handleOutputParameters)StatementHandler(prepare、parameterize、batch、update、query)开发插件类MybatisInterceptor.java

主方法

核心方法

Mybatis配置自定义插件

配置自定义插件运行效果

运行结果

插件 日志 方法