一、Mybatis四大组件
SqlSessionFactoryBuild、SqlSessionFactory、SqlSession、Mapper。
二、SqlSession四大对象
Executor、StatementHandler、ParameterHandler、ResultSetHandler。
这里阐述一下上图的流程
Exeutor发起sql执行任务
1、先调用statementHandler中的prepare()进行SQL的编译
2、然后调用statementHandler中的parameterize()设置参数
2.1、这里其实真正设置参数的是ParameterHandler中的setparameters()方法,该方法与typeHandler进行参数类型的转换
3、然后执行query/update方法,这里使用ResultSetHandler进行结果的组装工作
3.1、这里ResultSetHandler又与typeHandler、ObjectFactory配合工作共同完成结果的组装工作
statementHandler
执行器Executor,执行器负责整个SQL执行过程的总体控制。
语句处理器StatementHandler,语句处理器负责和JDBC层具体交互,包括prepare语句,执行语句,以及调用ParameterHandler.parameterize()设置参数。
参数处理器ParameterHandler,参数处理器负责PreparedStatement入参的具体设置。
结果集处理器ResultSetHandler,结果处理器负责将JDBC查询结果映射到java对象。