MySQL JDBC驱动包引入有版本要求吗

news2024/11/15 11:05:18

提示:有关数据库的任何操作,请事先都做好备份,一定不会错的;

文章目录

  • 前言
  • 一、com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver如何选择?
    • 1、概念
    • 2、引入驱动
    • 3、总结


前言

新老项目的交替中,如果你使用的是mysql,并且做了相关版本的升级,可能会遇到一些关于数据库的驱动问题,那就是引入哪个驱动包;


一、com.mysql.jdbc.Driver和com.mysql.cj.jdbc.Driver如何选择?

1、概念

在回答这个之前,我们需要了解几个概念,什么是数据库驱动,什么是驱动类名,什么是数据库版本

(1) 什么是数据库驱动

在这里插入图片描述
这个jar包一定不陌生,我们初期初学时不用maven的情况下,想调用mysql的话,这个是一定要引入到工程里的包,案例中的是Mysql 8.0版本的驱动; 驱动可以再maven的仓库中找到https://mvnrepository.com/artifact/mysql/mysql-connector-java

驱动的概念可以简单理解为:是一种用户和数据库之间的沟通交流的工具类,内置了很多丰富的功能API,如连接,数据分析处理等等方法;

(2) 驱动类名

既然驱动是一个工具类,我们想要调用方法的时候,自然需要引入对应的工具类来使用,而com.mysql.jdbc.Drivercom.mysql.jdbc.Driver就是不同版本驱动中所对应的类名;

(3) 数据库版本

数据库版本就是我们在PC中安装的mysql本地服务版本,他通常决定了我们代码中该使用什么版本的驱动,以及相关数据库操作的语法和功能;

2、引入驱动

说完概念,标题说的问题常见的地方就是关于数据库驱动的引入,在代码中,引入驱动的方式无非就几种方式;
1、通过Class.forName
这是最早比较常用的方式了,你只需要将驱动的类名作为参数传进去就好;算是入门必学方式吧;

Class.forName("com.mysql.jdbc.Driver"); // Class.forName("com.mysql.cj.jdbc.Driver");

2、通过DriverManager引入
这种方式是后续Java版本中推荐的方式,也就是在Java5之后吧,所谓推荐,说白了就是让我们代码的调用更加优雅一些罢了,毕竟直接写驱动类名字符串有点磕碜吧;

Driver driver = new com.mysql.jdbc.Driver();  // Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);

注意的是:上面代码中DriverManager的这个方式是显式调用方法注册,不过我们大多情况下不会去特意这么写,因为驱动在加载的时候已经自动做了注册动作了,我们用的时候,通常都是直接连接数据库进行后续操作的;

DriverManager.getConnection(String url, String user, String password)

3、maven直接引入

这种方式直接在maven的pom文件中引入对应版本驱动依赖即可;
在这里插入图片描述

3、总结

了解完驱动的概念和引入方式后,我们就知道
1、com.mysql.jdbc.Driver这个驱动类名是 MySQL Connector/J 5.1.x 版本驱动中使用的 JDBC 驱动类名,而MySQL Connector/J 5.1.x是mysql 5.x版本适用的驱动

2、com.mysql.cj.jdbc.Driver这个驱动类名是 MySQL Connector/J 8.0.x 版本驱动中使用的 JDBC 驱动类名,MySQL Connector/J 8.0.x 是Mysql8.x版本系列的推荐驱动,需要注意的是:他是兼容Mysql 5.7的,再早期的版本就未必了,所以就是为什么有的人说自己明明是mysql5.x的版本,也能用8.0版本的驱动原因;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1814426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旅游网页(HTML+CSS+JS)

前言 本篇博客就不给大家讲解了,直接上代码 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:https://blog.csdn.net/2302_78381559/category_12644031.html?spm1001.2014.3001.5482https://blog.csdn.net/2302_78381559/catego…

最受欢迎的测试用例管理工具,14款软件全方位对比

14款不错的测试用例管理工具对比:PingCode、TestRAIl、Xray、PractiTest、Tricentis qTest、禅道(ZenTao)、Zephyr、Tapd、TestLink、TestCollab、Testin云测、云效(Alibaba Cloud Effect)、TeavCloud、FitNesse。 在软…

如何做好期货投资?

期货,这个词对于很多人来说可能还是个陌生的词汇,但是,随着经济的发展和人们对金融投资的需求增加,期货投资也变得越来越受到关注。那么,如何才能做好期货投资呢? 首先,了解期货的基本知识是非…

Linux网络编程(二)Socket编程

Socket编程 一、网络套接字概念:socket 一个文件描述符指向一个套接字(该套接字内部由内核借助两个缓冲区实现。)在通信过程中, 套接字一定是成对出现的。二、网络字节序和主机字节序的转换函数(ip和端口&#xff09…

戎码翼龙NG-EDR白皮书

NG-EDR 很轻 内核轻量不卡机! ◆ 戎码翼龙AI原生NG-EDR具备强大的数据采集能力,涵盖了MITRE ATT&CK框架下的终端数据源,能为威胁检测提供强力基础。在技术实现层面,戎码翼龙采用了先进的内核级数据采集技术,以超…

aardio - 关于字符串指针的操作

一、前言: aardio中的字符串,是不可修改的。 我们对字符串变量重新赋值一个不同的字符串,并不是“修改数据”,而是“更换地址”,实际上是赋予了一个新的内存指针。 先看下图,理解一下aardio中字符串变量…

跳动圆点加载动画

效果图: 完整代码: <!DOCTYPE html> <html> <head><meta charset="UTF-8" /><title>跳动圆点加载动画</title><style type="text/css">body {background: #ECF0F1;display: flex;justify-content: center;al…

MATLAB神经网络---激活层

reluLayer 修正线性单元 (ReLU) 层 ReLU 层对输入的每个元素执行阈值运算&#xff0c;其中任何小于零的值都设置为零。 此运算等效于 语法 layer reluLayer 创建一个 ReLU 层。 layer reluLayer(Name,Name) 创建一个 ReLU 层&#xff0c;并使用名称-值对组设置可选的 Nam…

【机器学习】机器学习与金融科技在智能投资中的融合应用与性能优化新探索

文章目录 引言机器学习与金融科技的基本概念机器学习概述监督学习无监督学习强化学习 金融科技概述股票预测风险管理资产配置 机器学习与金融科技的融合应用实时市场数据分析数据预处理特征工程 股票预测与优化模型训练模型评估 风险管理与优化深度学习应用 资产配置与优化强化…

产品管理:抓住关键要素的ABC分类法

目录 简介 ABC 分类法步骤 第一步&#xff1a;收集数据 第二步&#xff1a;处理数据 第三步&#xff1a;根据 ABC 分析表确定分类 第四步&#xff1a;绘制ABC分析图 第五步&#xff1a;根据 ABC 分析的结果&#xff0c;对 ABC 三类商品采取不同的管理策略 附&#xff1…

jenkins 自动化任务构建案例

一新建Item 输入一个名称&#xff0c;点击Freestyle project 进入到配置项 选择 This project is parameterized&#xff0c;点击String Parameter 添加 变量值 command添加执行的命令 二构建 点击build构建触发器 三查看控制台 控制台输出信息无误

双亲委派模型是什么,为什么要使用双亲委派模型

双亲委派模型是什么&#xff0c;为什么要使用双亲委派模型 在Java中&#xff0c;类加载器&#xff08;ClassLoader&#xff09;是负责将类文件加载到JVM中的关键组件。为了确保类加载过程的安全性和稳定性&#xff0c;Java引入了一种叫做双亲委派模型&#xff08;Parent Deleg…

联合数据库,申请出战!新指标“超级老人”揭示老年健康新视角,仅用logistic分析发文二区...

说到老年数据库&#xff0c;大家最熟悉的肯定是Charls&#xff0c;实际上类似免费好用的老年数据库还有很多&#xff0c;在没有思路的时候我们不妨看一下其他数据库的文章&#xff0c;说不定能找到新的思路或者切入点。 今天介绍的这篇文章就提出来一个新的概念-“超级老人”&a…

中国(广州)国际物流装备展圆满收官,铨顺宏邀您6月上海档案展

2024年5月29日-31日&#xff0c;为期三天的第十五届中国(广州)国际物流装备与技术展览会圆满收官。此次展会汇聚了物流装备与技术领域的众多行业精英和领先企业&#xff0c;展示了最新的技术和产品。铨顺宏科技作为物联网设备和技术服务领提供商&#xff0c;携RFID、BLE、UWB和…

按位拆分+前缀和,CF 1879D - Sum of XOR Functions

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1879D - Sum of XOR Functions 二、解题报告 1、思路分析 朴素暴力O(N^2)&#xff0c;考虑优化 由于要求的是异或值乘长度&#xff0c;那么我们可以按位考虑每一位异或值的贡献 我们枚举每一位 每次遍历…

TMCM-BB1是单轴板驱动器

TMCM-BB4 简介 TMCM-BB1和TMCM-BB4是Trinamic插槽式模块的基板。TMCM-BB1是单轴板&#xff0c;提供对一个MCU模块和一个驱动器模块的访问。TMCM-BB4是一个4轴板&#xff0c;提供对41模块插槽的访问。TMCM-0930模块采用单36针PCI插座&#xff0c;整个系统采用主MCU&#xff08;…

[Shell编程学习路线]--shell中重定向和管道符(详细介绍)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f6e0;️Shell编程专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月12日10点50分 &#x1f004;️文章质量&#xff1a;93分 ——前言—— 在Shell编程中&#xff0c;重定向和管道符是两个…

超声波清洗机哪家好?四大人气爆单超声波清洗机汇总安利

在日常生活中&#xff0c;我们每天都在与灰尘和污渍作斗争&#xff0c;尤其是对于那些细小、精密的物品&#xff0c;如眼镜。眼镜不仅是视力矫正的工具&#xff0c;更是我们个人形象的一部分。一副干净、明亮的眼镜可以让我们的视线更加清晰。因为保持眼镜的清洁是一件很重要的…

接上篇---dbeaver如何导入csv文件(科学计数法)以及导出csv(科学计数法如何处理)

前提由于我用的是社区版本的&#xff0c;不支持excel&#xff0c;只支持csv导入导出 1.导入时候遇见科学计数法的解决方案&#xff1b; 由于我处理的是一些合同编码&#xff0c;虽然excel我给它设置成了文本类型&#xff0c;但是另存为csv的时候还是会变成科学计数法&#xf…

【关注】科大睿智祝贺企业通过ITSS公示名单

近日&#xff0c;根据信息技术服务标准符合性评估相关规定&#xff0c;现对以下单位进行公示&#xff0c;公示期5个工作日。公示期内如有异议&#xff0c;请提供持有异议的正式书面文件&#xff0c;包括持有异议的原因及证据、单位或个人真实名称及有效联系方式。小编祝贺多家服…