SpringBoot缓存相关问题

2022-01-22 10:43:26 浏览数 (1)

框架注解

  • 在写代码时,特别是SpringMVC框架下的代码,在dao层,service层,controller层,开始写代码时,一定要先在类上加@注解,切记不能再犯这个小错误.

MyBatis与MySQL版本

  • 在使用MyBatis框架连接数据库时,运行程序出现如下异常:
代码语言:javascript复制
 java.sql.SQLException: Unknown system variable
  • 原因
代码语言:javascript复制
mysql-connecter-java的版本过低,很显然是数据库驱动程序与数据库版本不对应.
query cache在MySQL5.7.20就已经过时了,而在MySQL8.0之后就已经被移除了.
  • 解决办法
代码语言:javascript复制
如 mybatis使用 mysql-5.1.14的驱动程序,而mybatis配置的数据源连接的是 mysql-8.0.11,修改 pom文件中mysql-connector-java为新版本即可
  • 总结:

MySQL时区

  • 在配置了mysql 8的数据库时,运行项目会出现异常:
代码语言:javascript复制
The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone.

因为新版MySQL用了统一的时区管理,时区一致便与维护 ,避免PDT时区换算出错

解决办法:

  • 在配置文件的spring.datasource.url 添加字段serverTimezone=UTC(解决时区问题)和useUnicode=true&characterEncoding=UTF-8(解决乱码问题)
代码语言:javascript复制
spring.datasource.url=jdbc:mysql://localhost:3306/spring_cache?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
  • 在mysql中设置时区:set global time_zone=' 8:00'
代码语言:javascript复制
mysql> show variables like '%time_zone%';
 ------------------ -------- 
| Variable_name    | Value  |
 ------------------ -------- 
| system_time_zone |        |
| time_zone        |  : |
 ------------------ -------- 
 rows in set,  warning (. sec)

mysql> set global time_zone=' :';
Query OK,  rows affected (. sec)

0 人点赞