1,概述
springboot启动web项目后报错,
invalid bound statement (not found):xxx
2,问题分析
这是很常见的一种异常,报错的情况通常有以下几种情况:
2.1 语法错误
mapper.xml与dao没有正确对应
java DAO接口
public void delete(@Param("id") String id);
java对应的mapper.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="xxx.xxx.xxx.xxDao"> <!-- 删除数据 --> <delete id="delete" parameterType="java.lang.String"> DELETE FROM xxx WHERE id=#{id} </delete> </mapper>
检查确认:
a) 接口方法名称delete和xml中id=“delete”是否一致;
b) xml文件中namespace="xxx.xxx.xxx.xxDao"是否和接口文件路径一致(点击能否跳转到对应的接口类);
c) parameterType和resultType(resultMap)是否准确;
2.2 编译错误
检查项目 targetclasses路径下是否存在对应的mapper.xml文件
若不存在则在pom.xml中添加
<build> <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> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> </excludes> <filtering>false</filtering> </resource> </resources> </build>
重新编译,则出现对应的xml文件(希望把src/main/java下的xml,properties等配置文件,复制到classes目录中,则加入如上配置);
2.3 配置错误
在配置文件中指定扫描包(mybatis.mapper-locations=classpath*:/xx/xx/mapper/*.xml)时,配置路径有问题。
参考:
https://www.cnblogs.com/momoweiduan/p/9844069.html