【Exception】org.apache.ibatis.binding.BindingException

版权声明:本文为【丶我们一起学猫叫】原创文章,允许转载,但转载必须注明出处并附带首发链接! https://blog.csdn.net/AV_woaijava/article/details/89484364

案发现场:
在这里插入图片描述
解决方案:

  • 1、mapper.xml的命名空间(namespace)是否跟mapper接口的包名.类名是否一致

  • 2、mapper接口的方法名,与xml中的一条sql标签的id是否一致

  • 3、在application.properties中添加对mybatis的配置

      # 注意注意
      # 方式一:将maper.xml配置在 src/main/java 下
      mybatis.mapper-locations=classpath:top/peng/mapper/*.xml
      # 方式二:将maper.xml配置在 resources 目录下,需要创建mapper目录然后存放xml
      #mybatis.mapper-locations=classpath:mapper/*.xml     
      # 配置对应的实体类,可不做配置   
      mybatis.type-aliases-package=com.battcn.entity
      # 驼峰命名规范 如:数据库字段是  order_id 那么 实体字段就要写成 orderId
      mybatis.configuration.map-underscore-to-camel-case=true
    
  • 4、在main入口函数中,添加@MapperScan注解,告诉Spring ,去扫描mapper接口

      我的mapper接口是放在:top.peng.mapper包下的,所以我添加的注解是:
      @MapperScan("top.peng.mapper")
    
  • 5、如果你的项目是maven项目,并且你是使用上面方式一将mapper.xml文件映射在java package中的,
    请你在编译后,到所在目录看一看,很有可能是没有编译生成对应的xml文件
    因为 Spring Boot默认只打入java package 下的 *.java文件,所以我们需要在pom.xml文件的<build></build>里面,加这么一段:

      <build>
      	<resources>
      		<resource>
      			<!--编译resources下的文件-->
      			<directory>src/main/resources</directory>
      		</resource>
      		<resource>
      			<!--编译 src/main/java 下的xml文件-->
      			<directory>src/main/java</directory>
      			<includes>
      				<include>**/*.xml</include>
      			</includes>
      			<filtering>true</filtering>
      		</resource>
      	</resources>
      </build>
    

猜你喜欢

转载自blog.csdn.net/AV_woaijava/article/details/89484364