Spring整合MyBatis错误 org apache ibatis binding BindingException

               

     MyBatis Mapper使用Spring注入: applicationContext.xml

    <!--这一段让我们的MapperInterface能够最终在Spring中生成Bean最后被AutoWired-->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <property name="basePackage" value="com.zmx.ssm.user.mapper" />         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>                </bean>


       使用上面方式注入时需要注意下面问题: 
        - interface = com.zmx.ssm.user.mapper.UserMapper.class
        - mapper file = com.zmx.ssm.user.mapper.UserMapper.xml 
        - mapper namespace = com.zmx.ssm.user.mapper.UserMapper

       这三者应该设置为相同,否则会出现:org.apache.ibatis.binding.BindingException: Invalid bound statement 异常。

       使用上述配置,-mapper file也可以和-interface、-namespace不同的(注意:interface和namespace必须相同),但这时需要进行配置。指明mapper file的位置。

        配置如下(两种方式):

       方式一:

      1.在MyBatis配置文件中添加mappers:mybatis-config.xml

    <mappers>        <mapper resource="mapper/UserMapper.xml" />     </mappers>

 

<mappers> <mapper resource="com/itsyc/fmpp/mappers/StudentMapper.xml" /> <!-- Mapper文件可以和interface不在相同路径下! --></mappers>

      2.使用configLocation,在Spring配置文件中添加MyBatis配置文件的引用:applicationContext.xml 

 

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />              <!--指定了Mybatis配置文件的路径-->        <property name="configLocation" value="classpath:mybatis-config.xml"/>               </bean>



     方式二:

 
      使用mapperLocations,MyBatis-Spring会自动地扫描该路径下的所有Mapper文件: applicationContext.xml

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <property name="dataSource" ref="dataSource" />              <!--等价于上面的配置-->        <property name="mapperLocations" value="classpath:/mapper/*Mapper.xml"/>          <property name="typeAliasesPackage" value="com.zmx.ssm.user.domain" />              </bean>


 

 

           
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值