java.sql.SQLException: The server time zone value ……

发布于:2022-12-18 ⋅ 阅读:(443) ⋅ 点赞:(0)

项目场景:

  • 项目场景:后端数据处理,使用MyBatis — —持久层框架,为了免除了绝大部分的 JDBC 代码以及设置参数和获取结果集的工作,进而出现……。

在这里插入图片描述

术语阐述

  • 框架(Framework): 半成品软件,一套可重复使用的、通用的 软件基础代码模型
    库(library) :库文件是计算机上的一类文件,提供给使用者开箱即用的变量、函数或类。

  • 架构(architecture):软件架构指软件系统的“基础结构”,创造这些基础结构的准则,以及对这些结构的描述。

  • 系统:系统泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是“总体”“整体”或“联盟”。

什么是 Mybatis?

  • MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。

(在我搜索的时候有一些文章抨击是Mybatis-plus(国内开发的),怎么说呢?这种文章很容易让初学者先入为主,这里建议对待任何技术都是:大胆听取,小心求证!

  • 作用
    MyBatis 免除了几乎所有的 JDBC(Java Database Connect) 代码以及设置参数和获取结果集的工作。

  • 处理方式
    MyBatis 可以通过简单的 XML 或注解来配置和映射:原始类型、接口和 Java POJO为数据库中的记录。
    (Plain Old Java Objects,普通老式 Java 对象)


问题描述

  • 数据数据存取处理时抛出异常, java.sql.SQLException。
    jdbc.driverClass: com.mysql.cj.jdbc.Driver
    jdbc.url: jdbc:mysql://localhost:3306/itnew
    jdbc.username: username
    jdbc.password: password

原因分析:

  • 时区问题:使用mysql的jdbc驱动最新版版本(或6.0以上)时,而产生的问题。
  • 由于使用高版本的MySQL驱动,时区信息需要设置;然而,上述代码,并没有设置时区,进而导致抛出异常。

时区信息后续会有详细描述文章。


解决方案:

  • 解决方案有多个,这里仅描述常用的方式:
    jdbc.driverClass: com.mysql.cj.jdbc.Driver
    jdbc.url: jdbc:mysql://localhost:3306/itnew?serverTimezone=GMT
    jdbc.username: username
    jdbc.password: password

本次日志记录结束。闲话不多说了,给个赞呗!!!

在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到