首页 > 其他 > 详细

Mybatis源码分析(一)

时间:2021-03-14 23:59:27      阅读:29      评论:0      收藏:0      [点我收藏+]

1. 使用SqlSessionFactory获取SqlSession

2. 通过JDK动态代理获取Mapper接口代理对象

3. 解析mapper.xml保存,通过jdbc,statment,preparestament执行查询等操作

4. 通过反射,构造函数构造对象,通过反射set方法设置对象各个字段

通过JDK动态代理获取mapper接口代理对象

技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

 

 技术分享图片

 

 

 拿到代理对象MapperProxy

技术分享图片

 

 执行MapperMethod

技术分享图片

 

执行查询

技术分享图片

 

 通过sqlsession接口查询

技术分享图片

 

 

技术分享图片

 

 

通过Executor执行查询

技术分享图片

 

 BoundSql保存有sql语句,接着往后走

技术分享图片

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 这里可以看到JDBC里面的PrepareStatment查询

下面开始解析结果,反射生成对象,反射设置属性

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 可以看到调用java反射创建新的对象。

代码要回到之前的,填充对象的属性

DefaultResultSetHandler.java
getRowValue方法

技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 最后也是调了java反射,method.invoke设置对象属性

Mybatis源码分析(一)

原文:https://www.cnblogs.com/luckygxf/p/14534666.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!