MyBatis机制介绍与原理

发布时间 2023-03-25 13:26:08作者: 灯塔下的守望者

插件简介

什么是插件

插件是一种软件组件,可以在另一个软件程序中添加功能或特性。插件通常被设计成可以随时添加或删除的,而不影响主程序的功能。插件可以扩展软件程序的功能,这让用户可以根据自己的需求定制软件,提高工作效率。常见的插件包括浏览器插件、音频和视频编辑软件的特效插件、图形处理软件的滤镜插件等。

MyBatis 插件介绍

MyBatis 作为一个通用的 DAO 层框架,也提供了插件的机制,例如:我们可以用插件实现分页、分表、监控等功能。

MyBatis 在四大组件(ExectorStatmentHandlerParameterHandlerResultSetHandler)处提供了强大的插件扩展机制。

MyBatis 对持久层的操作依赖于这四大核心组件对象。MyBatis 支持通过插件对四大核心组件进行拦截,对 MyBatis 来说,插件就是拦截器,用来增强和信息对象的功能。增强功能底层是借助于 JDK 的动态代理来实现的,也就是说, MyBatis 的四大核心组件本质上都是代理对象。

总之,MyBatis 的四大核心组件和扩展点提供了灵活和可扩展的持久层操作方式,使得开发人员可以根据具体的应用场景来选择适合的方式来操作数据库。同时,插件机制也提供了一种简单、方便的方式来增强 MyBatis 的功能,扩展 MyBatis 的能力。

MyBatis 允许拦截的方法

  • 执行器 Executor (updatequerycommitrollback 等方法)
  • Sql 语法构造器 StatementHandler(prepareparameterizebatchupdatesquery 等方法)
  • 参数处理器 ParameterHandler(getParameterObjectsetParameters 方法)
  • 结果集处理器 ResultSetHandler(handlerResultSetshandleOutputParameters 方法)

MyBatis 插件的原理

参考 Mybatis基本流程