MySQL - java链接mysql8 并兼容链接mysql5 亲测可用

2023-10-26

   开始之前先去官网捋一遍 MySQL Connector / J开发人员指南 ,看看官方的一些变动,和一些可能要注意的点,或者一些可能会踩到的坑。。。

  事先,我们要有一个使用mysql5.x的应用或者服务,需要修改的部分不算多,但是要想同时想兼容5.x和8.x两个版本的话,需要有一下三点要注意修改;

  一、修改maven的依赖包,由原来的5.x,修改成8.x,maven地址参考(mysql-connector-java

原来:

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>

改为:

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
</dependency>

  二、链接URL修改,mysql8.x 必须要加上时区的配置,serverTimezone=Asia/Shanghai

原来: 

jdbc.driverClassName=com.mysql.jdbc.Driver
database.url=jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&allowMultiQueries=true

改为:<driverClassName不修改会影响性能,但是可以实现兼容两个版本。。。总得有牺牲嘛>

jdbc.driverClassName=com.mysql.jdbc.Driver
database.url=jdbc:mysql://127.0.0.1:3306/demo?useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai

   三、有些类或者接口,原来mysql5.x支持的,但是在 mysql8.x 已经给废弃了。。。(例如 异常处理 exception

 原来:

import com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException;

... ....

@ExceptionHandler({MySQLIntegrityConstraintViolationException.class,xxx.class})

改为:

/** https://dev.mysql.com/doc/connectors/en/connector-j-upgrading-to-8.0.html#connector-j-changed-exceptions */
import java.sql.SQLIntegrityConstraintViolationException;

... ...

@ExceptionHandler({SQLIntegrityConstraintViolationException.class,xxx.class})

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL - java链接mysql8 并兼容链接mysql5 亲测可用 的相关文章

  • MySQL 字符串中的第二个(或第三个)索引

    查找字符串中第三个空格的索引的最简单方法是什么 我的目标是得到CCC在此空格分隔的列表之外 AAAA BBBB CCCC DDDD EEE 其中A B和D是固定长度 C是可变长度 E F G是可选的 在Java中 我会使用indexof 起
  • SQLAlchemy - 批量插入忽略:“重复条目”

    我有一个名为user data 列id and user id作为唯一的密钥 我想将一些历史数据导入到该表中 我用批量插入映射 http docs sqlalchemy org en rel 1 0 orm session api html
  • 计算 mysql 数据库行数的最佳方法

    在遇到 mysql 查询加载时间慢的问题后 我现在正在寻找计算行数的最佳方法 我曾经愚蠢地使用过mysql num rows 函数来做到这一点 现在意识到这是最糟糕的方法 我实际上正在制作一个分页来用 PHP 制作页面 我找到了几种计算行数
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • 如何在 codeigniter 查询中使用 FIND_IN_SET?

    array array classesID gt 6 this gt db gt select gt from this gt table name gt where array gt order by this gt order by q
  • Hibernate + MySQL + rewriteBatchedStatements=true

    我有以下 Hibernate 配置
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • MySQL 左连接 WHERE table2.field = "X"

    我有以下表格 pages Field Type Null Key Default Extra page id int 11 NO PRI NULL auto increment type varchar 20 NO NULL
  • 在同一查询中选择 Count of ip 和 Count of DISTINCT ip

    我有一个这样的表结构 TABLE NAME counter id datetime url ip 1 2013 04 12 13 27 09 url1 ip01 2 2013 04 13 10 55 43 url2 ip02 3 2013
  • 从 call_log 中获取最大并发通话数

    我需要帮助在 MySQL 5 0 77 中编写一个查询 根据下面所示的数据 办公室一天的通话量 返回并发电话呼叫的峰值数量 我只是想知道一天中任何特定时间同时打电话的人数最多是多少 首先 这是 MySQL 表 CREATE TABLE ca
  • 连接到 OpenShift (Redhat Paas) mysql 实例

    我正在尝试将我的 C 应用程序与 openshift 数据库连接 但我得到了这个例外conn Open Eccezione gt MySql Data MySqlClient MySqlException 0x80004005 Unable
  • MySQL正则表达式:如何将字符串中的数字与\d匹配?

    我有一个专栏release date它以字符串格式存储日期 不是 DATETIME 格式 因为它们有时可以是任何其他字符串文字 我想根据给定的月份和年份查找任意日期的所有记录 尝试遵循但对我不起作用 gt Post find all con
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • MySql 视图脚本中的注释

    可以这样做吗 我尝试过多个 gui mysql workbench navicat toad for mysql 但没有一个保存这样的注释 something important select something else importan
  • MySQL:如何仅获取正值的平均值?

    假设我有 INT 列 并且我使用 1 来表示插入时没有可用数据 我想获得该列中所有 0 或更大值的平均值 这可能吗 Thanks 我忘了提及 我正在与其他 AVG 一起执行此操作 因此从选项卡中选择 avg a avg b avg d 所以
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex

随机推荐

  • selenium还能这么玩:连接已经存在的浏览器

    测试和爬虫对selenium并不会陌生 现有的教程已经非常多 但是因为 selenium 封装的方法比较底层 所以灵活性非常高 我们可以基于这种灵活性来实现非常丰富的定制功能 这篇文章介绍一个操作 可以让 selenium 连接我们手动打开
  • MFC添加自定义消息及重写消息过程

    由于MFC中无法通过类向导来自定义消息 所以需要手动添加 主要过程如下 本文基于vs2008下通过线程实现数据实时更新的对话框运用程序 1 定义消息 Resource h文件中 由于很多新控件也会用到WM USER消息 所以定义WM USE
  • 8086汇编寄存器及指令汇总

    1 寄存器的分类 通用寄存器 ax bx cx dx ah al bh bl ch cl dh dl sp bp si di 指令寄存器 ip 标志寄存器 FR 段寄存器 cs ds ss es 2 ax bx cx dx 这四个寄存器存放
  • 入门文献复现——Combining belief functions based on distance of evidence Deng Yonga,2, Shi WenKanga, Zhu Zhe

    这个Paper结合BOE之间的距离的思想 对Murphy的方法进行了改进 代码注解 虽然代码写的还是一如既往的臭 仅仅知识为了获得运行结果而写 但还是基本复现了Paper 基于加权质量的平均法 1 计算BOE之间的距离d m i m j 1
  • USB数据通道

    USB数据通道 USB Type C连接器是对称的 它复制了大多数信号 使其支持可翻转性 如图1所示 对于这类复制 需要支持超高速USB产品的数据通道多路复用器 以及支持交替模式产品的数据通道交叉开关 对于USB Type C数据通道 设计
  • PyQt5.QtWidgets.QWidget结构及用法

    分解 PyQt5是一个大的模块 是Qt在Python中的桥梁 QtWidgets是PyQt5下面的一个模块 包含了用于构建界面的一系列UI元素组件 QWidget是QtWidgets模块下面的一个类 QWidgetClass The QWi
  • 在Jmeter中使用自定义编写的Java测试代码

    我们在做性能测试时 有时需要自己编写测试脚本 很多测试工具都支持自定义编写测试脚本 比如LoadRunner就有很多自定义脚本的协议 比如 C Vuser Java Vuser 等协议 同样 Jmeter也支持自定义编写的测试代码 不过与L
  • 第五课:C++实现加密PDF文档解密

    目录 1 功能概述 2 示例代码 3 PDF加密原理 3 1 PDF加密方法 3 1 1 加密电脑本地PDF文件 3 1 2 在其他电脑上使用PDF文件 3 1 3 批量加密PDF文件 1 功能概述 请注意 未经授权的加密PDF文件解密是非
  • 如何在上海租房,数据有话说

    租房 一个上漂族绕不过的问题 租房者往往会去到58 豆瓣等租房信息发布平台查询数据 但简单的网页浏览却很难解决租房者不能全面认知上海租房市场的情况 这时候 如果会一点爬虫和数据分析技能 就会事半功倍 比如使用租房平台上的房源数据 搭建一款适
  • java中的类修饰符、成员变量修饰符、方法修饰符。

    类修饰符 public 访问控制符 将一个类声明为公共类 他可以被任何对象访问 一个程序的主类必须是公共类 abstract 将一个类声明为抽象类 没有实现的方法 需要子类提供方法实现 final 将一个类生命为最终 即非继承类 表示他不能
  • 爬虫之二手车

    import requests from lxml import etree headers User Agent Mozilla 5 0 Windows NT 10 0 Win64 x64 AppleWebKit 537 36 KHTML
  • 更改docker容器中的时间而不影响宿主机

    容器的时间问题 如果想要直接进入容器 使用date s修改日期 则会出现一个date cannot set date Operation not permitted的错误 而且也不会成功 这是由于docker容器的隔离是基于Linux的Ca
  • tensorflow 多GPU编程 完全指南

    人生苦短 我用pytorch 推荐大家使用 PyTorch分布式训练简明教程 PyTorch分布式训练基础 DDP使用 知乎 主要变动的位置包括 1 启动的方式引入了一个多进程机制 2 引入了几个环境变量 3 DataLoader多了一个s
  • 5折交叉验证的回归分析

    w lt read csv C Users Administrator Desktop mg csv header T 样本的个数为1385 5折交叉验证 n 1385 zz1 1 n zz2 rep 1 5 ceiling 1385 5
  • PTA 7-15 计算圆周率 (15 分)

    根据下面关系式 求圆周率的值 直到最后一项的值小于给定阈值 2 1 31 3 52 3 5 73 3 5 7 2n 1 n 输入格式 输入在一行中给出小于1的阈值 输出格式 在一行中输出满足阈值条件的近似圆周率 输出到小数点后6位 输入样例
  • 音视频基础(1)音视频处理流程

    文章目录 音视频基础 1 音视频处理流程 1 概要 2 音频处理流程 3 视频处理流程 4 直播客户端处理流程 5 音频数据流转 音视频基础 1 音视频处理流程 理解音频处理流程对我们做音视频开发至关重要 因为理解了这个处理流程之后 我们就
  • mysql用户授权

    mysql用户授权 1 grant授权 授权 添加用户并设置权限 命令格式 grant 权限列表 on 库名 表名 to 用户名 客户端地址 identified by 密码 with grant option with grant opt
  • draw.io环境搭建

    为什么80 的码农都做不了架构师 gt gt gt 前言 draw io是一款在github上的开源产品 由于需要构建在线文档 需要插入画图类型 对比多款开源产品 最终选择了draw io draw io图标资源非常的丰富 方便导入图标资源
  • Android——(高级控件下拉框与搜索框)

    1 高级控件与低级控件区别 是否使用适配器 2 适配器种类和作用 2 1 种类 数组适配器 ArrayAdapter new ArrayAdapter
  • MySQL - java链接mysql8 并兼容链接mysql5 亲测可用

    开始之前先去官网捋一遍 MySQL Connector J开发人员指南 看看官方的一些变动 和一些可能要注意的点 或者一些可能会踩到的坑 事先 我们要有一个使用mysql5 x的应用或者服务 需要修改的部分不算多 但是要想同时想兼容5 x和