MySQL升级到8.0.X之后,SpringBoot集成Mybatis使用MySQL的时候,需要注意以下情况。
1、pom中MySQL的依赖版本应和安装的MySQL数据库保持一致,如:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
2、配置文件的数据源和之前有所不同,以下以yml格式为例,properties文件类似。
其中要注意的是:
db-type:(变量和之前不一样)
driverClassName: com.mysql.cj.jdbc.Driver(和之前不一样)
url:需要加入serverTimezone=UTC以及allowPublicKeyRetrieval=true
spring:
datasource:
druid:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/dbblog?serverTimezone=UTC&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
username: root
password: root
initial-size: 5
max-active: 20
min-idle: 5
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
#validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/*
#login-username: admin
#login-password: admin
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
3、有些字段变为关键字,目前发现的有:rank,为关键字,更改方式:①,重新更改表字段、代码等,可以从根本解决问题,但是如果项目很大且已经部署,更改需要小心;②,用 "`" 这个符号将涉及到的关键字包起来。如:
mapper.xml中涉及的
java代码中涉及的
sql脚本中涉及的
model(Java bean)中涉及的
都需要更改。
后续可能还会有些坑,慢慢发现慢慢填......