SSM项目从零开始到入门010-mybatis提供的动态代理实现过程探究
2017-12-15 15:26
363 查看
mybatis提供的动态代理实现过程探究
上小节我们简单实现了mybatis的动态代理,本节我们跟进动态代理的实现
我们在上图47行的地方打上一个断点,然后debug执行程序
点击F5跟进程序
上面的sqlsession即我们创建的sqlsession args为参数,点击F5继续跟进execute函数
因为我们执行是insert方法
我们在此处按F5跟进
此处返回的为我们的User对象属性,F6下一步继续跟进
看上图返回值,是返回了我们写的方法的名称全路径,我们跟进这个方法,点击F5跟进
原来这个路径是通过我们的配置文件全路径,然后加上方法id得到的,我们F6继续跟进
点击F5进入此方法
显然这个方法是得到了addUser方法的配置信息,我们继续跟进152行
70行刷新了下缓存,继续跟进update方法
继续跟进法继续跟进doUpdate方法
doUpdate方法中定义了Statement对象,handler组装了sql语句, 跟进48行update方法
方法将satement转换为预加载preparesatement然后执行并返回受影响行数
最后程序关闭预加载
整体流程整理如下图
上小节我们简单实现了mybatis的动态代理,本节我们跟进动态代理的实现
我们在上图47行的地方打上一个断点,然后debug执行程序
点击F5跟进程序
上面的sqlsession即我们创建的sqlsession args为参数,点击F5继续跟进execute函数
因为我们执行是insert方法
我们在此处按F5跟进
此处返回的为我们的User对象属性,F6下一步继续跟进
看上图返回值,是返回了我们写的方法的名称全路径,我们跟进这个方法,点击F5跟进
原来这个路径是通过我们的配置文件全路径,然后加上方法id得到的,我们F6继续跟进
点击F5进入此方法
显然这个方法是得到了addUser方法的配置信息,我们继续跟进152行
70行刷新了下缓存,继续跟进update方法
继续跟进法继续跟进doUpdate方法
doUpdate方法中定义了Statement对象,handler组装了sql语句, 跟进48行update方法
方法将satement转换为预加载preparesatement然后执行并返回受影响行数
最后程序关闭预加载
整体流程整理如下图
相关文章推荐
- SSM项目从零开始到入门009-使用mybatis提供的动态代理
- SSM项目从零开始到入门012-mybatis的select介绍
- mybatis中接口没有实现类的动态代理探究
- SSM项目从零开始到入门004-mybatis架构介绍
- SSM项目从零开始到入门015-mybatis的delete介绍
- SSM项目从零开始到入门013-mybatis的insert介绍
- mybatis中接口没有实现类的动态代理探究
- SSM项目从零开始到入门008-mybatis传递多个参数问题
- SSM项目从零开始到入门005-创建第一个mybatis项目
- SSM项目从零开始到入门011-详解mybatis的XML 映射配置文件
- SSM项目从零开始到入门014-mybatis的update介绍
- SSM项目从零开始到入门006-为mybatis项目添加日志支持
- Mybatis学习总结(二).Mybatis普通方式实现CRUD及动态代理方式实现CRUD
- 19、SSM框架-Mybatis入门概述及第一个Mybatis实例实现增删改查(1)
- SSM搭建-Mybatis入门概述及第一个Mybatis实例实现增删改查(16)
- java语言基础入门——用反射实现动态代理
- Mybatis 源码解析二、Mapper接口的代理实现过程 MapperScannerConfigurer 解析
- MyBatis从零开始搭建过程到实现查询数据的过程总结
- Mybatis3源码分析(21)-Mapper实现-动态代理
- Mybatis实现Mapper动态代理方式