zoukankan      html  css  js  c++  java
  • MyBatis报错:Invalid bound statement (not found)错误的可能原因

      这个问题比较简单,其实出现这个问题实质就是mapper接口和mapper.xml文件没有映射起来。

      有些细节可以逐一排查,常见的错误如下:

    1、检查xml文件所在package名称是否和Mapper interface所在的包名

    <mapper namespace="com.enmox.emcs.market.dao.MarketDao">

      mapper的namespace写的不对!我之前是从别的模块复制的,只改了 MarketDao,没有改前面的 market.dao.MarketDao,导致报错。

    2、看下mapper的XML配置路径是否正确

    mybatis:
      mapper-locations: classpath*:mybatis/**/*.xml
      executor-type: simple
      config-location: classpath:mybatis-config.xml
      type-aliases-package: com.***.user.model,***,com.***.market.model

      type-aliases-package:配置映射类所在的包名

      这个有时候是报 ClassNotFound 的错。

    3、MarketDao 的方法在 MarketDao.xml 中没有,然后执行MarketDao的方法会报此错误。

      即mapper接口中的方法名和mapper.xml中的id标签不一致,这个问题解决方法一样,仔细对对。

    4、MarketDao 的方法返回值是 List<market>,而select元素没有正确配置ResultMap,或者只配置ResultType!

    5、以上问题都没有,但是还是不行,可能原因就是,没有构建进去,打开target看看对应的mapper.xml文件在不在

      如果不在的话,clean一下,maven项目,然后再启动。

    6、pom.xml文件中配置resource,不然mapper.xml文件就会被漏掉!pom.xml的中配置了resource,bug消失了~

    <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>

    7、mapper-locations路径配置不对:

    // 原配置如下:
    mybatis:
    mapper-locations: classpath:signinsrcmain
    esourcesmapperxmlmapperxml/.xm 
    
    //此为绝对路径。修改配置路径如下:
    mybatis:
    mapper-locations: classpath:mapperxml/.xml

      之前是绝对路径所以扫描不到,修改了之后再编译,项目代码就不是之前的绝对路径了,已经到target目录下了。

  • 相关阅读:
    Centos7安装Python3的方法
    word2vec原理(二) 基于Hierarchical Softmax的模型
    word2vec原理(一) CBOW与Skip-Gram模型基础
    爬虫的危害有多大
    python线程池实现
    进程和线程、协程的区别
    程序的编译与解释之间的区别
    【python3】如何建立爬虫代理ip池
    可能是史上最全的机器学习和Python(包括数学)速查表
    python 元类
  • 原文地址:https://www.cnblogs.com/goloving/p/14847334.html
Copyright © 2011-2022 走看看