springboot集成mybatis后密码正确但数据库连接失败是怎么回事

springboot集成mybatis后数据库连接失败

问题描述:

1、datasource配置:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql:///testa
    username: root
    password: 0117
   
mybatis:
  mapper-locations: classpath:mybatis/mapper/*.xml
  type-aliases-package: com.offcn.entity
  configuration:
    map-underscore-to-camel-case: true

2、报错信息:


3、分析问题

根据报错提示,数据库密码存在问题,仔细检查密码无误。

仔细检查代码:

(1)entity实例化对象名称和数据库表名称一致

(2)mapper和mapper.xml代码无误,映射正确。

(3)service层调用和业务实现无误

(4)controller代码无误,已使用@ResponseBody将对象转化为JSON格式。

(5)pom引入的各种依赖的版本导入正常且版本不存在冲突或存在过高、过低的问题

分析一遍之后,发现代码没有问题,出问题的应该还是数据库连接的地方。

再次检查数据库,cmd进入命令行检查数据库密码:

mysql -uroot -p0117

成功连接数据库,说明密码确实不存在问题。

尝试修改yml文件中的数据库连接密码:

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql:///testa
    username: root
    password: 0117sqdf
    #type: com.alibaba.druid.pool.DruidDataSource
mybatis:
  mapper-locations: classpath:mybatis/mapper/*.xml
  type-aliases-package: com.study.entity
  configuration:
    map-underscore-to-camel-case: true

发现提示的错误一样:

看来问题确实出在yml数据库连接密码这里。

解决方法

查询资料发现,yml解析的时候,0开头的数字,会把它当成8进制数据解析,所以会提示密码错误.
解决方法:要么用'0117'(前提是密码就是0117),要么改密码(不用数字0开头的密码)

posted @ 2021-07-13 15:34  泰初  阅读(1595)  评论(0编辑  收藏  举报