IDEA+Maven:invalid bound statement (not found)解决办法

IDEA Maven项目中invalid bound statement解决方法
本文介绍了在IDEA使用Maven构建的JavaWeb项目中遇到'invalid bound statement (not found)'错误的解决方案。包括检查XML文件命名空间、Mapper.java与Mapper.xml对应方法的匹配、ResultMap配置、XML配置路径的正确性,以及在pom.xml中添加资源扫描配置。如果以上步骤仍无法解决问题,建议尝试清理并重新构建项目。

IDEA+Maven:invalid bound statement (not found)解决办法

环境:idea+maven+java web+bootstarp+sql server

问题bug

在这里插入图片描述

解决问题解决

1.检查xml文件的namespace是否正确
2.Mapper.java的方法在Mapper.xml中没有,然后执行Mapper的方法会报此
3.xxxMapper.java的方法返回值是List,而select元素没有正确配置ResultMap,或者只配置ResultType
4.如果你确认没有以上问题,请任意修改下对应的xml文件,比如删除一个空行,保存.问题解决
5.看下mapper的XML配置路径是否正确

以上还是不好使得话
pom.xml修改

<!--         如果不添加此节点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>
`org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)` 错误通常表示 MyBatis 找不到指定的 SQL 映射语句,以下是一些可能的解决方法: #### 检查映射文件与接口绑定 此错误可能是 Mybatis 中的映射文件跟接口文件绑定错误导致的,需要反复检查关于 Mapper 与映射文件的细节之处,确保映射文件中的命名空间(namespace)与对应的 Mapper 接口的全限定名一致,并且 SQL 语句的 id 与 Mapper 接口中的方法名一致[^2]。 示例: Mapper 接口: ```java package com.kangning.system.mapper; import java.util.List; import com.kangning.system.entity.SysDictData; public interface SysDictDataMapper { List<SysDictData> selectDictDataList(); } ``` 映射文件(`SysDictDataMapper.xml`): ```xml <mapper namespace="com.kangning.system.mapper.SysDictDataMapper"> <select id="selectDictDataList" resultType="com.kangning.system.entity.SysDictData"> SELECT * FROM sys_dict_data </select> </mapper> ``` #### 检查映射文件路径配置 要保证 MyBatis 能够找到映射文件。在 MyBatis 的配置文件中,需要正确配置映射文件的路径。如果使用 Spring Boot 集成 MyBatis,可在 `application.properties` 或 `application.yml` 中进行配置。 `application.properties` 示例: ```properties mybatis.mapper-locations=classpath:mapper/*.xml ``` `application.yml` 示例: ```yaml mybatis: mapper-locations: classpath:mapper/*.xml ``` #### 检查编译问题 有时候编译过程可能会出现问题,导致映射文件没有正确复制到目标目录。可以尝试清理项目并重新编译。 在 Maven 项目中,可使用以下命令: ```sh mvn clean install ``` #### 检查缓存问题 缓存可能会导致旧的映射信息被使用,可尝试使缓存失效或重启项目。在一些开发工具(如 IntelliJ IDEA)里执行该操作,原本的缓存文件虽不会立即从磁盘物理删除,但会被标记为无效,开发工具后续会重新构建缓存数据 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值