java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not

出现异常后,就开始了漫长的网络搜索解决方案之旅,可以查到很多这种异常的相关博客或说明,但基本内容都差不多.也在网上查了好久,就是不知道原因:网上说的也大同小异,下面有我在网上查到的解释,以及我自己的总结:

在这里插入图片描述
,通常可能导致这个异常出现的原因有以下几种:

(1) mapper接口类和mapper.xml是否在同一个包下,文件名称是否一致(仅后缀不同):经过实际检验,这个并不需要在同一个包下面,通常mapper.xml文件是存放在src/main/resources目录下,而mapper接口类是在src/main/java目录下面;名称是否相同也不重要,我的命名分贝为NumberDao.java和NumberMapper.xml,实际也可以运行成功
(2)mapper.xml的namespace是否是对应接口类的全名(包括包名和类名):这个是必须要保证相同,需要进行检查,而且全类名最好通过复制,不要自己手动拼写,容易出错
(3)mapper接口类的方法名是否与mapper.xml中sql标签的id相同:这个也需要进行检查,必须保证一致
(4)mapper.xml文件中用resultMap,而不用resultType(当sql操作结果是List或其他复杂结果集时):我经过实践检验,我的查询结果是一个Integer的List集合,用resultMap反而报错,异常信息如下:
在这里插入图片描述

(5) 到target目录下看是否有mapper.xml文件生成(按照自己对mapper.xml文件的路径配置到target下classes目录下找),如果没有可以

	 1. <resources>		
	 2. <resource>		
	 3. <directory>src/main/resources</directory>																																	   																																		   						
	 4. <includes>																																			   						
	 5. <include>**/*.xml</include>																																   						
	 6. </includes>																																				   						
	 7. </resource>	
	 8. </resources>																																   						. 																																		   																																								   						. 																																		   						

在pom.xml文件的之间添加

也可以再在之间再添加一项

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

使mapper.xml文件不论是放在src/main/resources或src/main/java下都可以被打包到classes目录下。

在这里插入图片描述搜了许多,终于找到了答案,的确是xml映射文件的问题,在代码生成器后,拷贝代码时,xml映射文件没有拷贝,才导致报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值