目录

一、概述

二、一个常见的异常

三、mysql-connector-java是什么

四、不同版本Driver类的包路径对比

五、后记


一、概述

我们在搭建项目的框架时,无论是直接拷贝jar包,还是在pom文件中配置maven依赖,都会遇到mysql-connector-java。从名字上来看,我们知道它与mysql有关。那么它到底有什么用,我觉得有一大部分读者朋友弄不清。大多数人在搭建项目时,都是直接复制,也不管到底复制了什么,直接从上一个项目的maven依赖复制到新的项目的pom文件中。

二、一个常见的异常

"java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver"是一个很常见的异常,出现了这个异常说明找不到com.mysql.cj.jdbc.Driver这个类,而这个类就位于mysql-connector-java的6.x版本中。我们可以分析这个异常出现的原因,出现该异常,则表明driver-class-name配置的是:com.mysql.cj.jdbc.Driver。第一步:我们检查项目中有没有mysql-connector-java的jar包(maven项目检查有没有mysql-connector-java依赖)。第二步:如果有jar包或maven依赖,则看下该jar包或maven依赖是不是6.x的。如果是5.x的版本,可以将版本升到6.x,也可以将driver-class-name配置为:com.mysql.jdbc.Driver,同样可以解决问题。

三、mysql-connector-java是什么

mysql-connector-java 是MySQL提供的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包,它的主要用途有三个:

  1. 与数据库建立连接
  2. 发送 SQL 语句
  3. 处理结果

四、不同版本Driver类的包路径对比

mysql-connector-java包中的Driver类是mysql提供实现类,实现了java.sql.Driver的规范。在5.x版本中Driver类在com.mysql.jdbc包路径下,到了6.x版中Driver类在com.mysql.cj.jdbc包路径下。下面两张图是5.x版本和6.x版本中Driver类的位置对比图:

5.x版本的类路径图:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2tleWJvYXJkXw==,size_16,color_FFFFFF,t_70

6.x版本的类路径图:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2tleWJvYXJkXw==,size_16,color_FFFFFF,t_70

五、后记

在写完这篇文章的几天后,我回过头再看这篇文章,觉得写得不好。所以重新写了一篇详细点的关于mysql-connector-java的文章,文章标题是《mysql-connector-java详解》,比这篇文章要写的好,感兴趣的朋友可以点进去看一看。

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐