1.Mybatis四大组件

在这里插入图片描述

  1. SqlSessionFactoryBuilder (构造器) 会根据配置或者代码来生成SqlSessionFactory
  2. SqlSessionFactory (工厂接口) 以后他来生成SqlSession 一般采用单例模式处理它
  3. SqlSession (会话) 一个既可以发送SLQ执行返回结果,也可以获取Mapper的接口 SqlSession 的作用类似一个JDBC中的 Connection 对象代表着一个连接资源的启用。
  4. SQL Mapper (映射器) 负责发送SQL 去执行,并返回结果。 使用MyBatis 肯定是要生成 SqlSessionFactory

2.SqlSession四大对象

在这里插入图片描述 Executor发起sql执行任务

  1. 先调用statementHandler中的prepare()进行SQL的编译
  2. 然后调用statementHandler中的parameterize()设置参数 这里其实真正设置参数的是ParameterHandler中的setparameters()方法,该方法与typeHandler进行参数类型的转换。
  3. 然后执行query/update方法,这里使用ResultSetHandler进行结果的组装工作
  • Executor
  • statementHandler
  • ParameterHandler
  • ResultSetHandler

3.映射器三大组成部分

在这里插入图片描述

  • MappedStatement:sql的ID、缓存信息、resultType、ParameterType、resultMap等信息
  • Sqlsource:是MappedStatement的一个属性,是一个接口,主要提供BoundSql
  • BoudSql:是建立SQL和参数的地方,有三个主要属性,ParameterMappings、ParameterObject和sql,这个对象比较重要,我们通常使用插件就是对它进行拦截;

4.总结

  • Mybatis四大组件构成mybatis的整个生命周期;
  • sqlSession四大对象,描述SQL执行的流程;
  • 映射器组成部门,描述最底层SQL执行的细节;