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!