另外一种情况,不写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方法
阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_7 Mybatis中使用代理Dao的执行过程分析
推荐阅读
- git代码回滚
- 一次多数据源 配置问题记录
- mac自动生成路径问题
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): cn.gaiay.business.helper.dao.LiveRegenrationRecordMapper.insert
- 记录一次数据库配置私钥
- velecity报错:Caused by: org.apache.velocity.exception.ParseErrorException: Lexical error, Encountered: <EOF> after : "\'/order/pay?activity=\" + activityId);\r\n }*/\r\n</script>\r\n#end\r\n" at /a
- 解决在IDEA 的Maven下 出现 Cannot access in offline mode 问题
- 查看分支
- idea报错:error java compilation failed internal java compiler error
- postman使用