1.Mybatis四大组件
- SqlSessionFactoryBuilder (构造器) 会根据配置或者代码来生成SqlSessionFactory
- SqlSessionFactory (工厂接口) 以后他来生成SqlSession 一般采用单例模式处理它
- SqlSession (会话) 一个既可以发送SLQ执行返回结果,也可以获取Mapper的接口 SqlSession 的作用类似一个JDBC中的 Connection 对象代表着一个连接资源的启用。
- SQL Mapper (映射器) 负责发送SQL 去执行,并返回结果。 使用MyBatis 肯定是要生成 SqlSessionFactory
2.SqlSession四大对象
Executor发起sql执行任务
- 先调用
statementHandler
中的prepare()
进行SQL的编译 - 然后调用
statementHandler
中的parameterize()
设置参数 这里其实真正设置参数的是ParameterHandler
中的setparameters()
方法,该方法与typeHandler
进行参数类型的转换。 - 然后执行
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执行的细节;