架构初识
这是在网络上找到的结构图,看图,可以了解到Mybatis的功能架构可以分为三层:
生命周期
这个图也是在网络上找到的个人感觉比较好的一张图
组件分析
组件 | 描述 |
SqlSession | 是Mybatis最主要的API,标识和数据库交互的会话,完成必要的数据库CURD功能 |
Executor | Mybatis执行器,是Mybatis调度的和信,负责SQL语句的生成和查询缓存的维护 |
StatementHandler | 封装JDBC Statement操作,负责对JDBC Statement的操作,比如设置入参、回参、封装结果转换成List集合 |
ParameterHandler | 负责对用户传递的参数转换成JDBC Statement所需要的参数 |
ResultSetHandler | 负责将JDBC返回的ResultSet结果集对象转换为List类型的集合 |
TypeHandler | 负责java数据类型和JDBC数据类型之间的映射和转换 |
MappedStatement | 维护了一条<select><update><delete><insert>的封装 |
SqlSource | 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中并返回 |
BoundSql | 表示动态生成的SQL语句以及相应的参数信息 |