yml已经配置了mybatis,启动过程中还是提示Invalid bound statement

对于跟着网上视频学习spring-boot和mybatis整合的初学者来说,你很可能遇到这种下面错误。

问题:yml中文件已经配置了mybtis,但是还是提示错误信息,如何解决呢?

解决思路:
1、 先参考下网上大部分的说法

  • 按以下步骤检查一般就会解决问题:
    1:检查xml文件所在package名称是否和Mapper interface所在的包名一一对应;
    2:检查xml的namespace是否和xml文件的package名称一一对应;
    3:检查方法名称是否对应;
    4:去除xml文件中的中文注释;
    5:随意在xml文件中加一个空格或者空行然后保存。

2、 自己在确认上面的情况都正常的情况下,百思不得其解,最后的找出了原因

  • 搭建的项目有两个配置文件:application.yml和application-dev;
  • yml已经配置了mybatis,启动过程中还是提示Invalid bound statement_第1张图片
  • 我们在使用时需要注意的是:只需要在application.yml中指定运行哪个环境的文件就是了,其它什么数据配置信息等就不要在application.yml中重复配置了,比如
  • application.ymlyml已经配置了mybatis,启动过程中还是提示Invalid bound statement_第2张图片
  • application-dev.ymlyml已经配置了mybatis,启动过程中还是提示Invalid bound statement_第3张图片
  • PS:spring-boot因为默认从主文件application.yml中加载配置信息,所以不指定的话,不要以为在dev中配置了就会生效!!!当application.yml中配置好了,才会从application-dev.yml中加载相应的配置参数信息。
  • 当然你也可以只用一个yml文件,比如只保留application.yml,里面两样可以配置两种启动参数
spring:
 profiles: dev
 datasource:
   url: jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
   username: root
   password: root
   db-name: test

spring:
  profiles: dev
  datasource:
    url: jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
    username: root
    password: root
    db-name: test

其它参考资料:

  1. Spring Boot 集成Mybatis Mysql
    Druid
  2. Spring boot Mybatis 整合(完整版)
  3. Spring加载resource时classpath*:与classpath:的区别
  4. Invalid bound statement (not found)
  5. SpringBoot如何导入自定义配置的yml文件

你可能感兴趣的:(Solutions)