Mybatis核心对象及其作用 (Configuration+SqlSession+Executor+StatementHandler+MapperProxy+MappedStatement)

核心对象

对象 相关对象 作用
Configuration MapperRegistry
TypeAliasRegistry
TypeHandlerRegistry
包含了 MyBatis 的所有的配置信息
SqlSession SqlSessionFactory
DefaultSqlSession
对操作数据库的增删改查的 API 进行了封装, 提供给应用层使用,默认实现是DefaultSqlSession,内含执行器Executor
Executor BaseExecutor
SimpleExecutor
BatchExecutor
ReuseExecutor
MyBatis 执行器,用到装饰器和模板方法模式, 是 MyBatis 调度的核心, 进一步对jdbc底层操作进行封装,负责 SQL 语句的生成和查询缓存的维护 ,创建Executor的时候包含语句的处理-StatementHandler 和参数的处理-ParameterHandler ,结果集的处理-ResultSetHandler
StatementHandler BaseStatementHandler
SimpleStatementHandler
PreparedStatementHandler
CallableStatementHandler
封装了 JDBC Statement 操作, 负责对 JDBC statement 的操作, 如设
置参数、 将 Statement 结果集转换成 List 集合
ParameterHandler DefaultParameterHandler 把用户传递的参数转换成 JDBC Statement 所需要的参数
ResultSetHandler DefaultResultSetHandler 把 JDBC 返回的 ResultSet 结果集对象转换成 List 类型的集合
MapperProxy MapperProxyFactory 代理对象,实现了InvcationHandler, 用于代理 Mapper 接口方法 (通过此代理对象可以让mapper接口根据方法名找到映射器中的sql语句)
MappedStatement SqlSource
BoundSql
j解析了mapper中的sql语句之后会将入参,返回结果等所有信息放进MappedStatement,其内部 维护了一条

你可能感兴趣的:(mybatis)