MybatisPlus之常用插件

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,那么,该操作会抛出异常。

乐观锁插件

猜你喜欢

转载自juejin.im/post/7037047335490158599