博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

SqlSession执行流程

一、产生

Mybatis解析完配置文件后,会生成一个DefaultSqlSessionFactory对象,调用openSession方法,即可获得一个SqlSession(使用的是默认的DefaultSqlSession对象)。

二、源码解读

 

 

  1. 获取到环境对象
  2. 获取到事务工厂
  3. 实例化事务对象
  4. 创建执行器对象
  5. 创建DefaultSqlSession对象

三、sqlSession作用

调用getMapper()方法,生成代理对象。

 

 

 

使用JDK动态代理,调用mapperProxyFactory.newInstance()。

 

MapperProxyFactory是为了给Mapper接口生成代理类,其中关键的拦截逻辑在MapperProxy中的invoke方法。

 

MapperProxy中调用了MapperMethod的execute方法。

执行对应的sql语句(使用JDBC进行数据库查询)。

 

 

在用JDBC调用数据库查询之前,首先会查询一级缓存,如果一级缓存中有,则取一级缓存中的数据,如果没有,则调用JDBC进行数据库查询。

 

 

posted @ 2021-01-26 17:01  疯狂打码  阅读(365)  评论(0)    收藏  举报