MyBatis源码调用过程

说明

项目框架Spring Boot(web模块) + Dubbo(service模块) + JSP(web页面)
MyBatis源码版本:3.4.5
个人理解,不全面

步骤

启动service模块,根据dao的个数,动态生成代理类

  • org.apache.ibatis.binding.MapperRegistry#addMapper方法
  • org.apache.ibatis.binding.MapperRegistry#getMapper方法
  • org.apache.ibatis.binding.MapperProxyFactory#newInstance(org.apache.ibatis.session.SqlSession)方法
  • org.apache.ibatis.binding.MapperProxyFactory#newInstance(org.apache.ibatis.binding.MapperProxy)方法

启动web模块,访问页面

进入Handler的业务方法,调用count方法

int countPutOnRecords(Map map);

定位到invoke方法

org.apache.ibatis.binding.MapperProxy#invoke
在这里插入图片描述

走到cachedMapperMethod方法,并进入

invoke方法的58行 final MapperMethod mapperMethod = cachedMapperMethod(method);,
根据key从map中取,没有的话,则创建,并放入map中

在这里插入图片描述

走到execute方法,并进入

invoke方法的59行 return mapperMethod.execute(sqlSession, args);
在这里插入图片描述

走到selectOne方法,进入方法

execute方法的82行 result = sqlSession.selectOne(command.getName(), param);
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值