之前两篇文章,已经讲述了SqlSessionFactory和SqlSession的获取过程,那么今天就一起来看一下SqlSession是如何得到Mapper的,从而执行相应的增删改查方法。这里还是以之前的代码为例,一步步debug的方式,去探究其中的过程。
首先,sqlSession调用getMapper(Class<?> type)方法,参数里传入指定的Class类型,返回给我们的就是一个传入该类型的对象,这个对象其实是一个代理对象,后面我们再具体说明一下。进入到getMapper(type)方法后,再次调用configuration.getMapper(type,sqllSession),在Configuration类中,继续调用mapperRegistry.getMapper(type,sqlSession)方法。mapperRegistry是不是有点眼熟,在上次讲解获取SqlSessionFactory中,解析mapper子节点时,我们还记得,将获取的