0%

mybatis详细执行过程

mybatis详细执行过程

下面结合源码来分析一下mybatis的详细执行过程,mybatis的源码在流行的框架中写的还是比较简单且清晰的,可以作为研究框架源码的一个敲门砖,以此来建立一下研究源码的信心。

  • 待整理

总结:

  • 根据配置文件(全局配置文件和映射文件)来初始化生成Configuration对象
  • 创建一个DefaultSqlSession对象,包含有Configuration以及Executor(根据配置文件中的defaultExecutorType来创建对应的Executor)
  • DefaultSqlSession.getMapper(),拿到Mapper接口对应的MapperProxy(jdk动态代理)
  • MapperProxy里面有DefaultSqlSession
  • 执行增删改查方法:
    • 调用DefaultSqlSession的增删改查方法(里面使用的是Executor的对应方法)
    • 会创建一个StatementHandler对象,ParameterHandler对象和ResultSetHandler对象
    • 调用StatementHandler的预编译参数以及ParameterHandler对象参数设置,在调用增删改查方法
    • 使用ResultSetHandler封装结果