SpringBoot集成Mybatis报错Invalid bound statement (not found)

问题分析
在这里插入图片描述
1.org.apache.ibatis.binding.BindingException
这里为什么会是org.apache.ibatis而不是org.apache.mybatis呢,不必纠结,如果想要知道为什么,就去了解一下mybatis的前世今生;
2.其次binding.BindingException,binding是绑定的意思,绑定什么呢,也就是mapper.xml映射文件。
3.BindingException 意思是绑定异常,完整的意思可以这样理解,SpringBoot启动的时候没有找到mybatis的mapper接口所绑定的mapper.xml的映射文件。

问题排查解决
1.启动类是否有添加@MapperScan注解,这个是mapper全局扫描注解,里面有个basePackages属性,也就是需要扫描的mapper包名。
例如:@MapperScan(basePackages=“com.xxx.xxx.mapper”)
在这里插入图片描述
2.mapper.xml映射文件的namespace节点,注意一定要指定你的mapper文件包名以及类名,这里很容易出错。
在这里插入图片描述

3.mapper.xml映射文件的路径,部分开发着喜欢把mapper.xml映射文件和mapper文件放在一起,也就是放在src.main.java包下。
在这里插入图片描述
如果是这样,你需要把mapper.xml映射文件的路径指定打包编译,
在pom.xml下面的,build节点下添加resources指定mapper.xml映射文件的路径。
在这里插入图片描述

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

4.如果你的mapper.xml映射文件不是和mapper放在同一目录下,而是放在resources/mapper的文件下面,则需要在application.properties指定你的mapper.xml映射文件路径,目的告诉mybatis你mapper映射文件路径。
在这里插入图片描述

mybatis.mapper-locations=classpath:mapper/*.xml

按照上面的步骤排查,基本就不会有问题存在。
编译之后查看编译文件target/classes下面有你的mapper文件,能看到基本问题就解决了。
在这里插入图片描述
end

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot整合Mybatis时,出现"Invalid bound statement (not found)"这个问题的实质是mapper接口和mapper.xml没有正确地映射起来。 为了解决这个问题,你可以按照以下步骤进行操作: 1. 首先,确认你的mapper接口和mapper.xml文件位于正确的位置,并且它们的命名规范是一致的。通常情况下,mapper接口应该位于`com.smbms.mybatis.mapper`包下,而mapper.xml文件应该位于`resources/mapper`目录下。 2. 确保在主配置文件(即application.properties或application.yml)添加了正确的配置。根据引用的代码示例,你需要在application.properties文件添加如下配置: ``` mybatis.typeAliasesPackage=com.smbms.mybatis.popj mybatis.mapperLocations=classpath:mapper/*.xml ``` 这样配置后,Mybatis就能正确地找到mapper.xml文件并与mapper接口进行映射。 3. 最后,重新编译和运行你的项目,确保没有其他错误导致该问题。如果问题仍然存在,可以检查一下mapper接口的方法名和mapper.xml文件的SQL语句是否一致,另外也可以尝试重新生成mapper接口和mapper.xml文件。 通过以上的步骤,你应该能够解决"Invalid bound statement (not found)"的问题,并成功实现SpringBootMybatis的整合。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [springboot整合mybatis出现Invalid bound statement (not found)](https://blog.csdn.net/weixin_56044831/article/details/116863995)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot整合mybatisInvalid bound statement (not found)错误的可能原因](https://blog.csdn.net/wsaicyj/article/details/124286481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值