mybatis和spring整合中mapperInterface是做什么用的

问题描述

<bean id="mapDao" class="org.mybatis.spring.MapperFactoryBean"><!-- 这里是接口,不是接口实现类了 --> <property name="mapperInterface" value="com.ssm.iface.IUserDao"/><property name="sqlSessionFactory" ref="sqlSessionFactory"/></bean> 这里org.mybatis.spring.MapperFactoryBean中的mapperInterface是做什么用的,他的value为什么指向的是接口,而不是接口的实现类俺是新手不懂,求解释,小生在此拜谢各位大侠了  问题补充:&lt;pre name="code" class="java"&gt;&lt;/pre&gt;<br />&lt;pre name="code" class="xml"&gt;&amp;lt;bean id="mapDao" class="org.mybatis.spring.MapperFactoryBean"&amp;gt;<br />&amp;lt;!-- 这里是接口,不是接口实现类了 --&amp;gt;<br /> &amp;lt;property name="mapperInterface" value="com.ssm.iface.IUserDao"/&amp;gt;<br />&amp;lt;property name="sqlSessionFactory" ref="sqlSessionFactory"/&amp;gt;<br />&amp;lt;/bean&amp;gt;&lt;/pre&gt;<br />&lt;pre&gt; 这里&lt;span style="font-size: small;"&gt;&lt;strong&gt;&lt;span&gt;org.mybatis.spring.MapperFactoryBean&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;中的&lt;strong&gt;&lt;span&gt;mapperInterface&lt;/span&gt;&lt;/strong&gt;是做什么用的,他的value为什么指向的是接口,而不是接口的实现类&lt;/pre&gt;<br />&lt;p&gt;俺是新手不懂,求解释,小生在此拜谢各位大侠了&lt;img src="/images/smiles/icon_biggrin.gif" alt=""&gt;&lt;/p&gt;<br />&lt;p&gt; &lt;/p&gt;

解决方案

引用<bean id="mapDao" class="org.mybatis.spring.MapperFactoryBean"> <!-- 这里是接口,不是接口实现类了 --> <property name="mapperInterface" value="com.ssm.iface.IUserDao"/> <property name="sqlSessionFactory" ref="sqlSessionFactory"/> </bean> 大概明白你的意思,是否想说有多个接口时该如何实现?如果有多个接口,那无非是多定义几个MapperFactoryBean,这里的mapperInterface值不一样而已,当然id记得不要取值一样了。
解决方案二:
mapperInterface之所以指向接口这是由mybatis决定的,mybatis本身为我们提供了接口的实现,所以我们在定义接口后就可以使用了,而不用再去实现接口,相信这是文档中首先介绍的吧,仔细去官方下个文档看看吧。

时间: 2024-09-28 02:05:33

mybatis和spring整合中mapperInterface是做什么用的的相关文章

【MyBatis框架】mybatis和spring整合

spring和mybatis整合 1.整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 2.整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.0的jar包 mybatis和sprin

Mybatis与Spring整合连接MySQL

1 maven依赖 <dependencies> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.springfra

Struts2和Spring整合中的Action是由谁创建的,有什么区别

问题描述 以下配置均未在Struts配置文件中加入<constant name="struts.objectFactory" value="spring" />情况说明如下:登录页面提交到Action中,Action在execute方法中调用ms对象中的valid方法进行验证,返回SUCCESS.在Action的构造方法中输出一行文字第一种情况:在Struts中配置Action,配置name,class配置成Spring中Action类的Bean ID,

mybatis 高级映射和spring整合之与Spring整合(6)

mybatis 高级映射和spring整合之mybatis与Spring整合 3.0 mybatis和spring整合(掌握) 3.1 整合思路 需求spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要有spring进行管理. 3.2 整合环境 创建一个新的java工程(接近实际开发的工程结构) jar

Spring整合Mybatis使用&amp;lt;context:property-placeholder&amp;gt;时的坑_java

背景 最近项目要上线,需要开发一个数据迁移程序.程序的主要功能就是将一个数据库里的数据,查询出来经过一系列处理后导入另一个数据库.考虑到开发的方便快捷.自然想到用spring和mybatis整合一下.甚至用mybatis的自动代码生成,可以省下大量dao层的开发. 整合的坑 之前的项目:以前也有过这种类似的程序,就把spring和mybatis整合的配置直接拿来修改下用.之前的整合配置是这样子的: 1.考虑到数据库url.用户名密码的可配置性,将这些信息放入properties文件.在sprin

mybatis 高级映射和spring整合之高级映射(4)

mybatis 高级映射和spring整合之高级映射 ----------------学习结构-------------------- 0.0 对订单商品数据模型进行分析 1.0 高级映射 1.1 一对一查询 1.2 一对多查询 1.3 多对多查询 1.4 resultMap总结 1.5 延迟加载 2.0 查询缓存 2.1 一级缓存 2.2 二级缓存(了解mybatis二级缓存使用场景) 3.0 mybatis和spring整合(掌握) 4.0 逆向工程(会用) ----------------

转 一步一步Spring整合JMS

1.1 JMS简介     JMS的全称是Java Message Service,即Java消息服务.它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息.把它应用到实际的业务需求中的话我们可以在特定的时候利用生产者生成一消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑.对于消息的传递有两种类型,一种是点对点的,即一个生产者和一个消费者一一对应:另一种是发布/订阅模式,即一个生产者产生消息并进行发送后,可以由多个消费者进行接收. 1.2 S

yy-在进行MyBatis与spring问题

问题描述 在进行MyBatis与spring问题 在进行MyBatis与spring整合时不管是使用映射器方法还是纯的XML方法都出现下列问题,查找资料和官方文档都感觉代码与逻辑没有错!!求解答! 下面是是使用映射器方法的spring配置文件beans.xml的内容: 其中UserMapper的代码是: package xx.xx; import java.util.List; import org.apache.ibatis.annotations.Select; import com.yiw

mybatis-MyBatis与Spring整合后为什么使用flushCache无效?

问题描述 MyBatis与Spring整合后为什么使用flushCache无效? 代码这样,为什么调用两次这个方法该SQL只会执行一次? @CacheNamespace(implementation=PerpetualCache.class) public interface MapperDao { @Select("SELECT * FROM N1 WHERE ID=#{id}") @Options(useCache=true ,flushCache=true) public Cos