MyBatis相关问题org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com…

一、问题描述

这个异常 org.apache.ibatis.binding.BindingException 是 MyBatis 框架的异常,它表示无效的绑定语句。具体来说,错误消息中提到的(你自己的mapper.xml路径)例如mapper.FileMapper.insertSelective 绑定语句无效,即找不到该绑定语句

二、原因分析

注意!!!

1. 在此之前请检查启动类的位置,以及启动类中是否添加注解@MapperScan(basePackages = {"mapper包路径"})

2. @Autowired 或 @Resource 注解是否存在

3. 其他未说明事项...

出现这个异常可能有以下几个原因:

  1. 绑定语句名称错误:请确保在 MyBatis 的映射文件(通常是 XML 文件)中存在名为 insertSelective 的绑定语句,并且该语句的命名空间为 (例如上述的FileMapper类路径)

  2. 映射文件未加载或配置错误:请检查 MyBatis 配置文件中是否正确加载了映射文件,并且映射文件的路径配置正确。

  3. 映射文件中未定义对应的绑定语句:请确保映射文件中存在名为 insertSelective 的绑定语句,并且它位于 上述的FileMapper类路径 命名空间中。

  4. 绑定语句的参数类型错误:如果 insertSelective 绑定语句定义了参数类型,确保传入的参数类型与绑定语句中定义的参数类型匹配。

三、错误原因

在这里仅针对application.yml配置文件中的mybatis配置问题,发现项目中并未添加configuration相关配置。

四、解决方案

添加上configuration相关配置,进行测试

mybatis:
  configuration:
    map-underscore-to-camel-case: true
    use-generated-keys: true
  type-aliases-package: domain的包路径
  mapper-locations: classpath:mapper/*.xml

检查以上几点后应该能够解决这个异常。如果仍然无法解决,欢迎进一步交流讨论。