目录
一、概述
我们在搭建项目的框架时,无论是直接拷贝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包,它的主要用途有三个:
- 与数据库建立连接
- 发送 SQL 语句
- 处理结果
四、不同版本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版本的类路径图:
6.x版本的类路径图:
五、后记
在写完这篇文章的几天后,我回过头再看这篇文章,觉得写得不好。所以重新写了一篇详细点的关于mysql-connector-java的文章,文章标题是《
mysql-connector-java详解
》,比这篇文章要写的好,感兴趣的朋友可以点进去看一看。