vlambda博客
学习文章列表

你知道mysql-connector-java是什么吗

我们在搭建项目的框架时,无论是直接拷贝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提供的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包,它的主要用途有三个:
  1. 与数据库建立连接

  2. 发送 SQL 语句

  3. 处理结果


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版本的类路径图:


6.x版本的类路径图: