mybatis异常:java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement
1.问题描述:
mybatis执行sql时抛出异常,sql执行失败;
2.排查问题:
2.1mapper接口和mapper.xml是否在同一个包(package)下?名字是否一样(仅后缀不同)?
比如,接口名是NameMapper.java;对应的xml就应该是NameMapper.xml
2.2mapper.xml的命名空间(namespace)是否跟mapper接口的包名一致?
比如,你接口的包名是com.abc.dao,接口名是NameMapper.java,那么你的mapper.xml的namespace应该是com.abc.dao.NameMapper
2.3接口的方法名,与xml中的一条sql标签的id一致
比如,接口的方法List<User> findAll();那么,对应的xml里面一定有一条是<select id="findAll" resultMap="**">****</select>
2.4如果接口中的返回值List集合(不知道其他集合也是),那么xml里面的配置,尽量用resultMap(保证resultMap配置正确),不要用resultType
2.5目录看一看,很有可能是没有生产对应的xml文件,因为maven默认是不编译的,因此,你需要在你的pom.xml的里面,加这么一段:
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
2.6如果项目是springboot配置文件application.yml的,检查配置文件内容如下:
mybatis:
mapper-locations: classpath*:mapper/**Mapper.xml #.xml目录
type-aliases-package: com.sl.tmc.mapper #mapper目录