mybatis详细执行过程
下面结合源码来分析一下mybatis的详细执行过程,mybatis的源码在流行的框架中写的还是比较简单且清晰的,可以作为研究框架源码的一个敲门砖,以此来建立一下研究源码的信心。
总结:
- 根据配置文件(全局配置文件和映射文件)来初始化生成Configuration对象
- 创建一个DefaultSqlSession对象,包含有Configuration以及Executor(根据配置文件中的defaultExecutorType来创建对应的Executor)
- DefaultSqlSession.getMapper(),拿到Mapper接口对应的MapperProxy(jdk动态代理)
- MapperProxy里面有DefaultSqlSession
- 执行增删改查方法:
- 调用DefaultSqlSession的增删改查方法(里面使用的是Executor的对应方法)
- 会创建一个StatementHandler对象,ParameterHandler对象和ResultSetHandler对象
- 调用StatementHandler的预编译参数以及ParameterHandler对象参数设置,在调用增删改查方法
- 使用ResultSetHandler封装结果