zoukankan      html  css  js  c++  java
  • Spring整合Mybatis 会出现的问题 org.apache.ibatis.binding.BindingException : Invalid bound statement (not found)

    这里的Spring注入后的意思是,你的接口已经成功的被扫描到,但是当Spring尝试注入一个代理(MyBatista实现)的实现类后,却无法正常使用。这里的可能发生的情况有如下几种;

    1、接口已经被扫描到,但是代理对象没有找到,即使尝试注入,也是注入一个错误的对象(可能就是null)
    2、接口已经被扫描到,代理对象找到了,也注入到接口上了,但是调用某个具体方法时,却无法使用(可能别的方法是正常的)
    当然,我们不好说是那种情况,毕竟报错的结果是一样的,这里就提供几种排查方法:

    1、mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?
    比如,接口名是NameMapper.java;对应的xml就应该是NameMapper.xml

    2、mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?

    比如,你接口的包名是com.abc.dao,接口名是NameMapper.java,那么你的mapper.xml的namespace应该是com.abc.dao.NameMapper

    3、接口的方法名,与xml中的一条sql标签的id一致

    比如,接口的方法List<User> findAll();那么,对应的xml里面一定有一条是<select id="findAll" resultMap="**">****</select>

    4、如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,尽量用resultMap(保证resultMap配置正确),不要用resultType

    5、最后,如果你的项目是maven项目,请你在编译后,到接口所在目录看一看,很有可能是没有生产对应的xml文件,因为maven默认是不编译的,因此,你需要在你的pom.xml的<build></build>里面,加这么一段:

     <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>true</filtering>
                </resource>
            </resources>


    原文:https://blog.csdn.net/ppppfly/article/details/46847299 

  • 相关阅读:
    SDL2 gif动态图加载
    js动态创建svg与use 使用iconfont symbol
    纯css3实现轮播图
    前端面试题
    移动端开发的兼容性问题
    JS高级(五)--ES6(Promise、async、类)
    JS高级(四)--ES6(常用的、重点的)
    JS高级(三)--原型链、闭包、作用域、函数的四种调用方式
    JS高级(二)--继承
    JS高级(一)--基础、数据类型、对象的基本使用、构造函数
  • 原文地址:https://www.cnblogs.com/u013533289/p/10996149.html
Copyright © 2011-2022 走看看