博客
关于我
Mybatis中使用代理dao的执行过程分析
阅读量:692 次
发布时间:2019-03-17

本文共 359 字,大约阅读时间需要 1 分钟。

首先基于,我们分析如下:

在这里插入图片描述
找到SqlSession的实现类DefaultSqlSession并找到它的getMapper方法:
在这里插入图片描述
继续进入Configuration类中找到它的getMapper方法:
在这里插入图片描述
继续进入mapperRegistry类中找到getMapper方法:
在这里插入图片描述
接着进入MapperProxyFactory类中找到newInstance方法:
在这里插入图片描述
这里可以看出使用了动态代理,newProxyInstance第一个参数为类加载器,第二个参数为实现接口,第三个参数为如何代理。
接下来进入MapperProxy看看是如何进行代理:
在这里插入图片描述
可以看出执行了execute:
在这里插入图片描述
接着我们进入executeForMany:
在这里插入图片描述
通过上面分析可以看出Mybatis帮我们做了一系列工作,所以我们可以不用实现dao接口。
可以结合这篇文章看

转载地址:http://wuchz.baihongyu.com/

你可能感兴趣的文章
mysql 使用sql文件恢复数据库
查看>>
mysql 修改默认字符集为utf8
查看>>
Mysql 共享锁
查看>>
MySQL 内核深度优化
查看>>
mysql 内连接、自然连接、外连接的区别
查看>>
mysql 写入慢优化
查看>>
mysql 分组统计SQL语句
查看>>
Mysql 分页
查看>>
Mysql 分页语句 Limit原理
查看>>
MySql 创建函数 Error Code : 1418
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
MySQL 到底能不能放到 Docker 里跑?
查看>>
mysql 前缀索引 命令_11 | Mysql怎么给字符串字段加索引?
查看>>
MySQL 加锁处理分析
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 参数 innodb_flush_log_at_trx_commit
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>