• MyBatis工作原理


    MyBatis工作原理

    1、读取MyBatis配置文件,mybatis-config.xml为全局配置文件,配置了MyBatis的运行环境等信息, 例如数据库连接信息。

    2、加载映射文件:映射文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在MyBatis 配置文件mybatis-config.xml中加载。mybatis-config.xml文件可以加载多个映射文件,每个文件对应 数据库中的一张表。

    3、构造会话工厂:通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory。

    4、创建会话对象:由会话工厂创建SqlSession对象,该对象中包含了执行SQL语句的所有方法,是一个 既可以发送sql执行并返回结果的,也可以获取mapper的接口

    5、Executor执行器:MyBatis底层定义了一个Executor接口来操作数据库,它将根据SqlSession传递的 参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。

    6、MappedStatement对象:在Executor接口的执行方法中有一个MappedStatement类型的参数,该 参数是对映射信息的封装,用于存储要映射的SQL语句的 id、参数等信息。

    7、输入参数映射:输入参数类型可以是Map、List等集合类型,也可以是基本数据类型和POJO类型。 输入参数映射过程类似于JDBC对preparedStatement对象设置参数的过程。

    8、输出结果映射:输出结果类型可以是Map、 List等集合类型,也可以是基本数据类型和POJO类型。 输出结果映射过程类似于JDBC对结果集的解析过程。

     

    •  SqlSession作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查 功能
    • Executor:MyBatis执行器,是MyBatis调度的核心,负责SQL语句的生成和查询缓存的维护
    • StatementHandler :封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参 数、将Statement结果集转换成List集合
    • ParameterHandler:负责对用户传递的参数转换成JDBC Statement 所需要的参数
    • ResultSetHandler:负责将JDBC返回的ResultSet结果集对象转换成List类型的集合
    • TypeHandler:负责java数据类型和jdbc数据类型之间的映射和转换
    • MappedStatement:MappedStatement维护了一条 节点的 封装
    • SqlSource:负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到 BoundSql对象中,并返回
    • BoundSql:表示动态生成的SQL语句以及相应的参数信息
    • Configuration:MyBatis所有的配置信息都维持在Configuration对象之中。
  • 相关阅读:
    Mygin上下文之sync.Pool复用
    ICCV何恺明团队又一神作:Transformer仍有继续改善的空间
    Golang第一章:入门
    学习SDN开发工具
    【计网】(三)超网、路由、NAT协议
    富文本生成word并在线预览(附源码)
    IDEA 自动导入的配置(Auto import)
    SpringCloud - Spring Cloud Alibaba 之 SkyWalking 分布式链路跟踪;SkyWalking集群(十七)
    Flutter笔记:序列化与反序列化
    ComText让机器人有了情节记忆
  • 原文地址:https://blog.csdn.net/weixin_50518344/article/details/128210454