MyBatis 的核心组件和执行流程?

发布于

一、核心组件

  • SqlSessionFactory:SqlSession 工厂,重量级,全局一个。
  • SqlSession:与数据库交互的会话,非线程安全,每次操作创建。
  • Executor:执行器,负责 SQL 执行和缓存维护。
  • StatementHandler:处理 JDBC Statement。
  • ParameterHandler:参数处理。
  • ResultSetHandler:结果集映射。

二、执行流程

  1. 读取配置文件(mybatis-config.xml)和 Mapper 映射文件,构建 Configuration。
  2. SqlSessionFactoryBuilder 创建 SqlSessionFactory。
  3. openSession() 获取 SqlSession。
  4. SqlSession 获取 Mapper 代理对象(JDK 动态代理)。
  5. 调用 Mapper 方法,最终通过 Executor 执行 SQL,返回结果。

三、插件机制

基于动态代理,可拦截四大对象(Executor、StatementHandler、ParameterHandler、ResultSetHandler),实现分页、监控等。