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

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

文章目录

  • 前言
  • 一、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版本的驱动原因;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

天阳科技集团北京卡洛其项目管理专家李先林受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 天阳科技集团北京卡洛其项目管理专家李先林先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“应用软件项目管理标准化实践探讨”。大会将于6月29-30日在北京举办,敬请关注! 议题简要&#xff1…

基于ChatGPT的大型语言模型试用心得

近年来,ChatGPT这样的大型语言模型,它如同一颗冉冉升起的新星,迅速在商业、教育、娱乐等多个领域照亮了创新的天空,极大地革新了我们的工作与日常生活。 最近我发现一些国内用户也能自由访问的中文ChatGPT APP。这个平台不仅提供…

Zabbix Centos8 安装笔记

Zabbix 安装笔记 安装环境 Centos 8 正常发行版 安装版本 Zabbix 7 (LTS) 安装步骤 1、关闭防火墙 systemctl stop firewalld && systemctl disable firewalld && setenforce 0 && sed -i s/SELINUXenforcing/SELINUXdisabled/g /etc/selinux/c…

【笔记】复制Edge的网址粘贴后自动变成中文标题超链接

问题 1、从edge复制的网址粘贴直接显示网页内容名称而不是网址url。 2、复制任何网址粘贴到CSDN里面粘贴时直接转换成标题超链接(很讨厌的功能习惯)。 而如上两种问题不是互相影响的,就算设置了Edge的粘贴方式,复制到CSDN的文章…

【Kubernetes】Helm--包管理工具

​​​​​​​ 微服务是什么? 微服务把大包解耦成小包,使用的时候使用java -jar包启动服务 Helm 什么是Helm? 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁…

机器,学习没有捷径

1 捷径学习 1.1 你捷径学习了么 深度学习因为其优异的学习能力,已经成为推动人工智能发展当之无愧的主力军。深度学习在NLP和CV等不同的场景下都展现了优异的能力。但深度学习也存在一个与生俱来的问题:捷径学习。 捷径学习中的捷径表示的是一种有缺陷…

和鲸科技执行总裁殷自强:面向空间数据协同分析场景的模型生命周期管理方法

导读: 由 ACM SIGSPATIAL 中国分会主办的第五届空间数据智能学术会议(SpatialDI 2024)于 2024 年 4 月 25 日- 27 日在南京圆满召开,主题为“ AGI 时代下的空间数据智能”,旨在深入推动空间数据智能研究的理论进步与应…

mysql:简单理解mysql mvcc的可重复读

# 原理 假设有这样的sql begin select(或update、insert、delete) ... commit当执行【begin】的时候,标记有一个新事务要开始,但是事务还没有真正开始,事务id还没有产生当执行事务里面的第一个sql语句时(…

【JS重点15】原型对象概述

目录 一:构造函数缺陷 二:原型 1 原型是是什么 2 原型对象的作用 3 原型对象this指向问题 4 利用原型对象添加方法 给JS内置构造函数Array添加最大值方法 给JS内置构造函数Array添加求和方法 三:Constructor属性 四:如何…

「茶桁 AI 秘籍-CV 篇」预告

Hi, 大家好。 我是茶桁。 咱们的《茶桁的 AI 秘籍》系列距离上一个系列课程《人工智能 BI 核心》已经有一段时间了,终于有时间可以写 CV 部分的课程,主要也是最近一段时间我确实有点忙不过来。 那么咱们 CV 的课程会有一些变化,就是会改为收…

AtCoder Beginner Contest 358 A~E(F,G更新中...)

A.Welcome to AtCoder Land 题意 给出两个字符串 S , T S, T S,T&#xff0c;请你判断是否满足&#xff1a; 字符串 S S S为AtCoder 字符串 T T T为Land 分析 输入后判断即可 代码 #include<bits/stdc.h> using namespace std; void solve() {string s, t;cin &g…

MacOS系统中Java使用Opencv4.10.0库的编译过程和使用方法(附编译后的包)

编译开始 到官方下载源码&#xff1b;官方 解压后进入 opencv-4.10.0 目录 执行命令预编译&#xff0c;查看是否有Java的支持 cmake -S . -B build -DCMAKE_INSTALL_PREFIX/usr/local/opencv开始正式编译 # 进入build目录 cd build # make编译 {N} 取决于你有几个CPU、几个线…

AI大模型探索之路-实战篇:智能化IT领域搜索引擎之知乎网站数据获取(流程优化)

系列篇章&#x1f4a5; No.文章1AI大模型探索之路-实战篇&#xff1a;智能化IT领域搜索引擎的构建与初步实践2AI大模型探索之路-实战篇&#xff1a;智能化IT领域搜索引擎之GLM-4大模型技术的实践探索3AI大模型探索之路-实战篇&#xff1a;智能化IT领域搜索引擎之知乎网站数据获…

【在线OJ】vue分页+SpringBoot分页模板代码

一、Vue <template><div><el-table:data"user"style"width: 120%"><el-table-columnlabel"id"width"180"><template slot-scope"scope"><i class"el-icon-time"></i>&…

几个小创新模型,KAN组合网络(LSTM、GRU、Transformer)时间序列预测,python预测全家桶...

截止到本期&#xff0c;一共发了8篇关于机器学习预测全家桶Python代码的文章。参考往期文章如下&#xff1a; 1.终于来了&#xff01;python机器学习预测全家桶 2.机器学习预测全家桶-Python&#xff0c;一次性搞定多/单特征输入&#xff0c;多/单步预测&#xff01;最强模板&a…

中国城市建设统计年鉴(1978-2022年)

数据年份&#xff1a;1978-2022 数据格式&#xff1a;excel、pdf 数据内容&#xff1a;以2022年为例&#xff0c;《中国城市建设统计年鉴—2022》根据各省、自治区和直辖市建设行政主管部门上报的2022年及历年城市建设统计数据编辑。 共分13个部分&#xff0c;包括城市市政公用…

Java课程设计:基于swing + mysql的酒店管理系统

文章目录 一、项目介绍二、项目展示三、源码展示四、源码获取 一、项目介绍 项目功能 1、散客开单&#xff1a;完成散客的开单&#xff0c;可一次最多开5间相同类型的房间。 2、团体开单&#xff1a;完成团体的开单&#xff0c;开放数量没有限制&#xff0c;可同时开不同类型…

Java阻塞队列:ArrayBlockingQueue

Java阻塞队列&#xff1a;ArrayBlockingQueue ArrayBlockingQueue是Java中的一个阻塞队列&#xff08;Blocking Queue&#xff09;实现&#xff0c;它是线程安全的&#xff0c;并且基于数组实现。ArrayBlockingQueue常用于生产者-消费者模型&#xff0c;在这种模型中&#xff…

北京人工智能数据运营平台发布,并开源大规模数据集

6月14日&#xff0c;AI行业顶级盛会2024北京智源大会正式拉开帷幕。作为大会的重要组成部分&#xff0c;智源大会“人工智能数据新基建”论坛同步召开。本论坛由北京智源人工智能研究院主办&#xff0c;中国互联网协会人工智能工委会和中国移动研究院承办。本次论坛邀请到来自中…

2-5 基于matlab的信号的希尔伯特-黄变换

基于matlab的信号的希尔伯特-黄变换&#xff0c;IMF分解&#xff0c;对IMF进行Hilbert处理&#xff0c;绘制二维/三维时-频图&#xff0c;时间-能量图(瞬时能量谱) &#xff0c;频率-能量图&#xff08;希尔伯特谱&#xff09;。程序已调通&#xff0c;可直接运行。 2-5 希尔伯…