阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_7 Mybatis中使用代理Dao的执行过程分析

另外一种情况,不写Mybits的dao实现类的情况。
切换工程到CRUD的工程。这里面是不写dao实现类的方式

进入到GetMaper里面。这里是创建代理对象

去找SqlSession的实现类DefaultSqlSession

DefaultSqlSession的getMapper方法

进入Configuration的getMapper方法


MapperRegistry的getMapper方法。里面走的是mapperProxyFactory.newInstance的方法


下面的调用上面的方法。

第一个参数类加载器、第二个参数实现的接口,第三个参数如何代理。我们的关注点是第三个参数mapperProxy如何代理

进入到mapperProxy

也就是上面的MapperProxy

实现了InvocationHandler接口。里面重写了invoke方法

继续找mapperMethod.execute




rowCountResult

executeForMany方法

executeForMany里面最终调用的是sqlSession的selectList方法


 

猜你喜欢

转载自www.cnblogs.com/wangjunwei/p/11313580.html