对于数据库操作,我们希望的是:输出每条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配置自定义插件
配置自定义插件运行效果
运行结果