MyBatis-Spring的整合,配置Mapper的过程中遇到的异常

项目中用的是spring3.0.5,MyBatis3.0.5,整合mybatis,spring用的是mybatis-spring-.1.0.1。在这个过程中,遇到了一个配置上的问题,就是配置Mapper时的错误,在运行时抛出如下异常:

Exception in thread "main" java.lang.IllegalArgumentException : Mapped Statements collection does not contain value for cn.xxxx.mail.webmail.dao.UserMapper.getUserById
一看就知是Mapper配置出错了。仔细检查过了,
1、我是用:<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="cn.xxxx.mail.webmail.dao.mapper"/>
    </bean>让spring自动加载mapper配置的,这个没错。

2、UserMapper.java接口和UserMapper.xml同名,且在同一路径下,这个没错。
     我的UserMapper.java有个方法是:public User getUserById(String id);

问题就出在这里了,我在UserMapper.xml中配成了这样:
<select id="getUser" resultType="cn.xxxx.mail.webmail.model.User" parameterType="java.lang.String">
      select * from users where id=#{value}
  </select>
在配置文件中的select 的id写错了,写成getUser,没和UserMapper.java的方法同名


经过这次,得出如下结论:
1、mapper的java文件和mapper的xml配置文件要同名,同路径

2、mapper的java文件的方法名称和mapper的xml配置文件的id要同名称

3、mapper配置文件的namespace要全名,不能只写包名
     如:cn.xxxx.mail.webmail.dao.mapper.UserMapper,这时,namespace不能写 成:cn.xxxx.mail.webmail.dao.mapper
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值