mybatis源码分析

MyBatis源码分析
核心的功能模块:
binding:把传入的参数对象转换为sql后的条件
executor:负责sql的执行和拼接
    statement:SimpleStatementHandler,负责sql的实际执行
    baseExecutor
session:创建session,session工厂,configuration初始化
transanction:事务
type:参数类型转换
scripting:
mapping:ParameterMapping  

        ResultMapping

        MappedStatement

       TypeHandler

       ResultSetHandler


spring对mybatis的支持

MapperScannerConfigurer

MapperFactoryBean 实现了ibatistemplate



mybatis拦截器:org.apache.ibatis.plugin.Interceptor

org.apache.ibatis.session.ResultHandler.class

org.apache.ibatis.session.RowBounds.class

org.apache.ibatis.session.SqlSessionFactory.class



MyBatis基本执行流程,

1.首先使用SqlSessionFactoryBean在spring初始化的时候调用buildSqlSessionFactory()建立sqlSessionFactory,spring通过调用mybatis的SqlSessionFactoryBuilder建立SqlSessionFactory

2.SqlSessionFactory提供了openSession方法,建立起session,在这个过程中注入事务,通过configuration新建Executor执行器,同时新建SqlSession对象

3.执行SqlSession的查询方法。

4.通过statement查询到MappedStatement,调用执行器Executor中相应的方法,进行操作。

5.Mybatis定义了几种Executor实现

6.Executor调用相应的查询方法,StatementHandler   对参数进行封装,DefaultParameterHandler对传入的参数进行映射,其中会调用到TypeHandler以及多种实现。

调用resultHandler对返回结果进行封装。




你可能感兴趣的:(apache,JavaSE)