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开头的密码)