一、异常描述
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.xxx.mapper.xxxtMapper.selectDetailList
可以看出是mybatis的映射绑定异常,通常有两种可能的原因:
(1)xxxMapper对应的xml文件找不到
(2)xml文件中找不到对应的方法
二、排查
1、“xml文件找不到”
(1)xxxMapper接口名必须和xml文件名相同
(2)xml文件的namespace必须和xxxMapper的位置对应。IDEA推荐使用“ctrl+alt+shift+c”拷贝包路径,或者在类上右击copy选择更多中的“copy reference”
<?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="com.xxx.mapper.xxxMapper">
......
</mapper>
(3)检查xml文件位置是否和配置文件中的xml扫描的路径一致
mybatis:
mapper-locations: classpath:**/*Mapper/*.xml
注意:resource文件夹下新建多级目录,不能用“.”分隔层级,只能用"\"。例如,在resource\com下新建user\mapper,不可以用“user.mapper”
2、“方法找不到”
(1)xxxMapper方法对应xml的方法名是否一致
(2)补充缺失的方法
补充:建议xxxMapper中方法的参数,用@Param指定
本文详细介绍了MyBatis中出现的BindingException异常,主要表现为映射绑定错误。异常可能由两个原因引起:XML文件未找到或方法未在XML中定义。检查要点包括接口名与XML文件名的一致性,namespace与接口位置对应,以及XML文件位置与配置文件扫描路径的匹配。同时,确保Mapper接口方法与XML中的方法名一致,并使用@Param注解指定参数。通过这些排查步骤,可以有效解决此类问题。
1万+

被折叠的 条评论
为什么被折叠?



