mybatis-原理


目录
  • 概括
  • SqlSessionFactory
  • openSession
  • getMapper
  • 执行方法
  • 总结

概括

MyBatis的底层封装了JDBC,简化了JDBC的开发。

SqlSessionFactory


解析配置文件


MappedStatement代表一个增删改查的详细信息

根据configuration对象来创建SqlSession

openSession


返回一个DefaultSQlSession对象,包含Executor和Configuration

getMapper


根据sqlSession生成代理对象

执行方法

总结

1)根据配置文件(全局,sql映射)初始化出Configuration对象
2)创建一个DefaultSqlSession对象,里面包含Configuration以及Executor(根据全局配置文件中的defaultExecutorType创建出对应的Executor)。
3)DefaultSqlSession.getMapper():拿到Mapper接口对应的MapperProxy。
4)MapperProxy里面有(DefaultSqlSession。
5)执行增删改查方法:
a)调用DefaultSqlSession的增删改查(Executor);
b)会创建一个StatementHandler对象;
c)调用StatementHandler预编译参数以及设置参数值,使用ParameterHandler来给sql设置参数;
d)调用StatementHandler的增删改查方法;
e)ResultSetHandler封装结果