数据库连接驱动之com.mysql.cj.jdbc.Driver与com.mysql.jdbc.Driver的区别

本文解析了MySQL数据库驱动从com.mysql.jdbc.Driver到com.mysql.cj.jdbc.Driver的变化,指出版本6及以上的mysql-connector-java应使用com.mysql.cj.jdbc.Driver,6以下则使用旧版驱动。并提供了在SpringBoot项目中如何正确配置application.properties文件的具体指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写Spring Boot项目时发现连接mysql数据库的驱动发生变化。之前我们用的com.mysql.jdbc.Driver,但是在看资料的时候看人家用的com.mysql.cj.jdbc.Driver,虽然知道他们都是用来连接mysql数据库的,但是我还是想知道他们两者的区别,才知道以后在项目该怎么选择,查阅资料后决定做个总结。
首先看下面:

 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>8.0.15</version>
 </dependency>

决定用啥由 <version>8.0.15</version>这个决定。
version在6及以上使用com.mysql.cj.jdbc.Driver,6以下使用com.mysql.jdbc.Driver。
具体使用位置application.properties:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver //6以上 spring.datasource.driver-class-name=com.mysql.jdbc.Driver //6以下
其他配置请参考:
https://blog.youkuaiyun.com/weixin_40357412/article/details/99698477(application.properties文件配置)

### 驱动类加载失败的常见原因 `com.tencentcloud.tdsql.mysql.cj.jdbc.Driver` 是腾讯云 TDSQL 提供的 MySQL JDBC 驱动类,用于连接 TDSQL 数据库。当出现该类加载失败的情况,可能由以下原因导致: 1. **依赖未正确引入** 项目中未正确引入 TDSQL 的 JDBC 驱动依赖,导致 JVM 无法找到该类。Maven 或 Gradle 项目需要确保 `pom.xml` 或 `build.gradle` 文件中包含正确的驱动依赖。 Maven 示例: ```xml <dependency> <groupId>com.tencent.tdsql</groupId> <artifactId>tdsql-mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> ``` 2. **驱动类名配置错误** 在配置文件(如 `jdbc.properties` 或 Spring Boot 的 `application.yml`)中,驱动类名错误地使用了标准 MySQL 的 `com.mysql.cj.jdbc.Driver`,而不是 TDSQL 特定的 `com.tencentcloud.tdsql.mysql.cj.jdbc.Driver`。应确保配置文件中驱动类名引入的驱动一致。 示例: ```properties jdbc.driver=com.tencentcloud.tdsql.mysql.cj.jdbc.Driver jdbc.url=jdbc:tdsql-mysql://host:port/database ``` 3. **JDBC URL 格式不匹配** TDSQL 的 JDBC URL 通常为 `jdbc:tdsql-mysql://host:port/database`,而标准 MySQL 使用的是 `jdbc:mysql://host:port/database`。如果 URL 格式不匹配,即使驱动类正确,也可能导致连接失败[^1]。 4. **驱动版本数据库不兼容** 使用的 TDSQL JDBC 驱动版本可能数据库服务端版本不兼容,导致类加载失败或连接异常。建议查阅 TDSQL 官方文档,确保使用的是推荐版本的驱动。 5. **JVM 无法加载类** 如果驱动依赖已正确引入,但 JVM 仍无法加载类,可能是由于类路径(classpath)未正确配置,或驱动 JAR 包损坏。可以通过检查构建工具日志或手动将 JAR 包添加到项目 lib 目录并手动引入来排查问题。 --- ### 示例:Spring Boot 配置 TDSQL 连接 在 Spring Boot 项目中,确保 `application.yml` 文件中配置了正确的驱动类和 URL: ```yaml spring: datasource: url: jdbc:tdsql-mysql://localhost:3306/mydb username: root password: password driver-class-name: com.tencentcloud.tdsql.mysql.cj.jdbc.Driver ``` 同时,确保 Maven 依赖中包含 TDSQL 的 JDBC 驱动: ```xml <dependency> <groupId>com.tencent.tdsql</groupId> <artifactId>tdsql-mysql-connector-java</artifactId> <version>8.0.28</version> </dependency> ``` --- ### 常见排查方法 1. **检查依赖是否成功下载** 查看 Maven 或 Gradle 构建输出目录(如 `target/dependency` 或 `build/libs`)中是否包含 TDSQL 的 JDBC 驱动 JAR 文件。 2. **使用 `Class.forName()` 显式加载驱动** 在代码中尝试显式加载驱动类,验证是否能成功: ```java try { Class.forName("com.tencentcloud.tdsql.mysql.cj.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } ``` 3. **查看日志输出** 检查应用启动日志,查看是否出现类加载失败、驱动类未找到或连接 URL 不匹配等异常信息。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值