Mybatis源码分析(一)

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设置对象属性

Please call me JiangYouDang!
原文地址:https://www.cnblogs.com/luckygxf/p/14534666.html