Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑

Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑

1.驱动名

驱动包用的是:mysql-connector-java-8.0.18.jar

驱动名从之前的:com.mysql.jdbc.Driver

改为: com.mysql.cj.jdbc.Driver

2.时区问题

昨天用MyBatis逆行工程的时候,出现了以下错误:

The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

谷歌翻译为:

服务器时区值”Öйú±ê׼ʱ¼ä”无法识别或代表多个时区。如果要利用时区支持,则必须配置服务器或JDBC驱动程序(通过serverTimezone配置属性)以使用更特定的时区值。

解决:

方法一、在Spring Boot配置文件 application.properties连接数据库 url后面拼接: serverTimezone=UTC

spring.datasource.url=jdbc:mysql://localhost:3306/perimetershop?serverTimezone=UTC

发现这样还是不行,还是时区问题,想到会不会是逆行工程连接数据库的url没有添加这个的缘故,我就在逆行工程的xml里面jdbc连接的url后面也添加了serverTimezone=UTC,果然,不报错了。

方法二、在mysql解压文件中, my.ini文件里,[mysqld] 里面加上default-time-zone=’+8:00′即可,这样url后面就可以不用每次都需要拼接 serverTimezone=UTC。

小扩展:UTC:协调世界时,又称世界同一时间,UTC和格林尼治时间是一样的, 北京处于东八区,领先UTC8个小时。

3.逆行工程多生成不需要的文件

使用MyBatis的逆行工程的时候,会多生成一个XXXWithBLOBs.java 的文件,这个文件,我们并不需要(如下图)。这个文件继承了原有的bean文件。

Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑

这个文件是什么呢?这个文件里面会包含数据库大字段,例如:text,blob,clob等。

原因是因为MySql字段中有text类型的,网上的解决方法是:

<table domainobjectname="User" tablename="test_user">
    <columnoverride column="address" javatype="java.lang.String" jdbctype="VARCHAR">
</columnoverride></table>

在table标签里声明一个大字段的行

<columnoverride column="address" javatype="java.lang.String" jdbctype="VARCHAR"></columnoverride>

我照网上做了,但是并没有解决我的问题,而且我的数据库表中,并没有text类型的字段。

网友的力量还是挺强大的,在翻阅好几篇博文之后,终于找到了解决方法

解决方法:

  <span class="hljs-tag"><<span class="hljs-name">jdbcConnection</span>
       <span class="hljs-attr">driverClass</span>=<span class="hljs-string">"com.mysql.jdbc.Driver"</span>
       <span class="hljs-attr">connectionURL</span>=<span class="hljs-string">"jdbc:mysql://localhost:3306/perimetershop?serverTimezone=UTC"</span>
       <span class="hljs-attr">userId</span>=<span class="hljs-string">"root"</span>
       <span class="hljs-attr">password</span>=<span class="hljs-string">"root"</span>></span>
        <span class="hljs-tag"><<span class="hljs-name">property</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"nullCatalogMeansCurrent"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"true"</span> /></span>
  <span class="hljs-tag">jdbcConnection</span>>

在逆向工程jdbc连接标签内,添加

<property name="nullCatalogMeansCurrent" value="true"></property>

看了一下Mybatis的Generator帮助文档,里面有给出答案:

Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑

网址:http://mybatis.org/generator/usage/mysql.html

Original: https://www.cnblogs.com/zdh052286/p/12175265.html
Author: 清酒一杯
Title: Spring Boot连接数据库,从MySql5.13飞跃到MySql8.0.18的坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/581603/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • ACL和NAT

    NAT 概述: NAT(网络地址翻译)一个数据包目的ip或者源ip为私网地址, 运营商的设备 无法转发数据。 NAT工作机制: 一个数据包从企业内网去往公网时,路由器将数据包当 中…

    Linux 2023年6月6日
    0100
  • redis查看状态信息

    redis查看状态信息 info all|default Info 指定项 server服务器信息 redis_version : Redis 服务器版本 redis_git_sh…

    Linux 2023年5月28日
    0104
  • 测试计划

    ​ 1.测试计划的定义:描述需要完成的所有工作,包括被测项目的目的、背景、范围、资源、进度、环境、任务、策略,以及相应的风险和措施。 ​ 2.测试计划的作用: 对后面的测试过程起到…

    Linux 2023年6月7日
    079
  • 2020年12月-第02阶段-前端基础-CSS Day07

    CSS Day07 CSS高级技巧 *理解 能说出元素显示隐藏最常见的写法能说出精灵图产生的目的能说出去除图片底侧空白缝隙的方法 *应用 能写出最常见的鼠标样式能使用精灵图技术能用…

    Linux 2023年6月8日
    0133
  • 虚拟机网络地址配置你不知道的事儿-服务器的种类

    想必大家在初学Linux过程中,应该都是跟我一样白嫖一台虚拟机进行使用把,但是在大家白嫖的同时知不知道我们公司内是使用的什么样的服务器呢?公司肯定不会跟我们一样在自己电脑进行安装虚…

    Linux 2023年5月27日
    099
  • 用全域安全防范美国NSA对西工大的网络攻击

    上周写的一篇文章《全域安全:一种运行时安全管理模型》,向大家介绍了全域安全管理模型,它是如何在Laxcus分布式操作系统的分布环境下,解决了分布式应用业务的全流程安全管理问题。其中…

    Linux 2023年6月6日
    0107
  • 为Windows Service 2019 使用 Docker

    引言最近收到领导通知,甲方需要将原来的服务器迁移到新的服务器。原来的服务器上安装了很多的服务,每次重启之后总是有很多的问题需要人工大量的进行干预。这次迁移的还是Windows服务器…

    Linux 2023年6月14日
    0119
  • 哨兵+redis主从部署架构-docker部署

    架构图 哨兵的介绍 sentinel , 中文是哨兵。 哨兵是redis 集群架构中非常重要的一个组件,主要功能如下: (1)集群监控:负责监控reidis master 和sla…

    Linux 2023年5月28日
    091
  • Centos 7防火墙策略配置指南

    Centos 7防火墙策略配置指南 —— 清听凌雪慕忆 @ 1. 开启防火墙 1.1 user切换到root用户 1.2 查看防火墙服务状态 1.3 查看firewall的状态 1…

    Linux 2023年6月7日
    0151
  • Java秒杀系统三:web层

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月11日
    0103
  • Docker 容器虚拟化

    Docker 容器虚拟化 1、虚拟化网络 Network Namespace 是 Linux 内核提供的功能,是实现网络虚拟化的重要功能,它能创建多个隔离的网络空间,它们有独自网络…

    Linux 2023年6月7日
    0141
  • shell 中使用 diff 比较两条命令的输出

    直接给出命令: diff <(command1) <(command2)< code></(command1)> 原理: 使用了进程替换的语法,…

    Linux 2023年6月14日
    096
  • Daydream Controller手柄数据的解析

    参考: How I hacked Google Daydream controller How I hacked Google Daydream controller (Part …

    Linux 2023年6月7日
    092
  • 在线安装Docker

    安装 yum-utils 包yum install -y yum-utils 设置存储库# 官方地址(比较慢) yum-config-manager \ –add-repo \ …

    Linux 2023年6月7日
    091
  • WSL2+Docker+IDEA一站式开发调试

    WSL2+Docker+IDEA一站式开发调试 前言 ​ 我们知道,Docker是一个容器引擎;对于开发者来说,使用Dokcer容器部署各种开发需要的中间件(比如myql、redi…

    Linux 2023年6月7日
    0119
  • c++模板类的使用,编译的问题

    前两天在写代码时,把模板类的声明和分开放在两个文件中了,类似于下面这样: stack.hpp: #ifndef _STACK_HPP #define _STACK_HPP temp…

    Linux 2023年6月14日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球