Mybatis生成及调用mapper接口方法过程
Mybatis生成及调用mapper接口方法过程一、生成mapper代理对象过程:二、返回mapper代理对象实例过程:三、执行mapper代理对象方法:mybatis是非常方便应用到spring项目中的持久层框架,他要求我们建立mapper接口,建立mapper.xml文件等等特殊的操作。那么他们建立之后是怎么样去调用的呢,我做了一个简单的调试,下面把调试后的心得整理一下,给自己mark一下,便
Mybatis生成及调用mapper接口方法过程
mybatis是非常方便应用到spring项目中的持久层框架,他要求我们建立mapper接口,建立mapper.xml文件等等特殊的操作。那么他们建立之后是怎么样去调用的呢,我做了一个简单的调试,下面把调试后的心得整理一下,给自己mark一下,便于回顾。
一、生成mapper代理对象过程:
(1)调用SqlSessionFactoryBean的object()方法,开始创建sqlsessionbean对象;
(3)之后调用Configration类的addmapper()方法,进而去调用MapperRegistry类中的addmapper()方法为mapper接口创建代理对象;
(2)最后后XMLMapperBuilder类的bulidstatement()方法创建*mapper.xml文件的MapperStatement对象;
二、返回mapper代理对象实例过程:
(1)由于mybatis实现了FactoryBean接口,所以Spring会自动执行MapperFactoryBean实现类的getObject()方法;
(2)调用SqlsessionTemplete类的getMapper()方法,之后调用Configration类的getmapper()方法,进而去调用MapperRegistry类的getmapper()方法,获取已注册的mapper代理对象,并返回实例;
三、执行mapper代理对象方法:
(1)通过前端调用Controller,Service被执行;
(2)Service调用的mapper方法,触发代理对象invoke方法;
(3)然后MapperMethod调用execute()方法;
(4)最后根据statement(包名.接口名.方法名)查询MapperStatement对象,执行sql,返回结果;
更多推荐
所有评论(0)