Mybatis的主要组件:
Configuration 用于代表Mybatis的所有配置信息
SqlSession 封装了JDBC Connnection对象,Mybatis工作时的顶层API,代表和数据库交互的会话,完成必要的CRUD,SCOPE在一次会话
SqlSessionFactory 用于获取SqlSession,SqlSession的工厂,每一次会话的开启都会用它取得一个SqlSession
Executor Mybatis执行sql的调度中心,缓存处理
StatementHandler 封闭了JDBC的Statement的相关的操作,如设置参数、将Statement的结果集转换为List
ParameterHandler 用于处理Statement的参数
ResultSetHandler 用于处理执行Statement后返回的结果 集
MappedStatement 用于代表Mybatis的每一条Sql
TypeHandler 用于处理参数设置及结果集转换过程中的类型转换问题
SqlSource 用于换取sql
BoundSql 封装了sql的详细信息
Plugin:Mybatis提供的插件功能,用到JDK的动态代理,
Mybatis用它主要来代理对象:Executor/StatementHandler/ParameterHandler/ResultSetHandler
方便定制化sql执行细节而不用硬性侵入原代码,好处:灵活可配置化
Proxy
Interceptor
Plugin
@Signature
@InterceptorsReflection:Mybatis封装的用于对象实例化,设置属性的工具,其中用到反射机制,方便动态实例化对象
OjbectFactory
OjbectWrapperFactory