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 編譯錯誤
檢查項目 target\classes\路徑下是否存在對應的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