MybatisPlus之常用插件
Mybatis插件机制原理
MyBatis允许你在已映射语句执⾏过程中的某⼀点进⾏拦截调⽤。
默认情况下,MyBatis允许使⽤插件来拦截的⽅法调⽤包括:
-
1.Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
-
2.ParameterHandler (getParameterObject, setParameters)
-
3.ResultSetHandler (handleResultSets, handleOutputParameters)
-
4.StatementHandler (prepare, parameterize, batch, update, query)
我们看到了可以拦截Executor接⼝的部分⽅法,⽐如update,query,commit,rollback等⽅法,还有其他接⼝的⼀些⽅法等。
总体概括为:
-
1.拦截执⾏器的⽅法
-
2.拦截参数的处理
-
3.拦截结果集的处理
-
4.拦截Sql语法构建的处理
拦截器示例
注⼊到Spring容器
xml配置,mybatis-config.xml
执⾏分析插件
在MP中提供了对SQL执⾏的分析的插件,可⽤作阻断全表更新、删除的操作,注意:该插件仅适⽤于开发环境,不适⽤于⽣产环境。
-
SpringBoot配置
-
测试
-
结果
可以看到,当执⾏全表更新时,会抛出异常,这样有效防⽌了⼀些误操作。
性能分析插件
性能分析拦截器,⽤于输出每条SQL语句及其执⾏时间,可以设置最⼤执⾏时间,超过时间会抛出异常。
waring 该插件只⽤于开发环境,不建议⽣产环境使⽤。
配置
-
javaconfig⽅式
-
xml⽅式
-
执⾏结果
可以看到,执⾏时间为11ms。如果将maxTime设置为1,那么,该操作会抛出异常。