一、异常描述
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指定
|