第 8 章 MyBatis插件开发

MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的接口和方法包括以下几个。

  • Executor (update、query、flushStatements、commit、rollback、getTransaction、close、isClosed)

  • ParameterHandler(getParameterObject、setParameters)

  • ResultSetHandler (handleResultSets、handleCursorResultSets、handleOutputParameters)

  • StatementHandler(prepare、parameterize、batch、update、query)

这 4 个接口及其包含的方法的细节可以通过查看每个方法的定义来了解。如果不仅仅是想调用监控方法,那么应该很好地了解正在重写的方法的行为。因为在试图修改或重写已有方法行为的时候,很可能会破坏 MyBatis 的核心模块。这些都是底层的类和方法,所以使用插件的时候要特别当心。下面将对拦截器的各个细节进行详细介绍。