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開頭的密碼)