在Java开发中,当使用JDBC(Java Database Connectivity)与MySQL数据库进行交互时,可能会遇到类名 org.gjt.mm.mysql.Driver 报红的问题。这通常意味着你的项目无法识别或加载这个驱动类,这通常是因为使用了旧版本的MySQL Connector/J。自从MySQL Connector/J 5.1.x版本后,官方推荐的驱动类名已经更改为 com.mysql.cj.jdbc.Driver。

1、解决思路

  • 当我们写yml配置的时候,如果碰见以下情况问题:
  • org.gjt.mm.mysql.Driver适合5.几的版本,(本人的是8.0.27)发现在yml里面写这个会报错

在这里插入图片描述

  1. 通过查找资料发现 org.gjt.mm.mysql.Driver 是com.mysql.jdbc.Driver的前身
  2. 查看mysql-connector-java-8.0.27.jar驱动文件,缺少类:org.gjt.mm.mysql.Driver;
  3. 最大支持该类文件的驱动版本为:mysql-connector-java-5.1.47.jar
  4. 将 org.gjt.mm.mysql.Driver 替换为 com.mysql.jdbc.Driver 后发现报错消失
  5. 这个时候不报红了,但是还是有问题的,数据库8.0以上版本用的是 com.mysql.cj.jdbc.Driver成功解决

![在这里插入图片描述](https://img-blog.csdnimg.cn/c8b0acf04e354b6bb932e059307f3938.png

  1. 更新驱动类名:首先,确保你的代码中使用的驱动类名是最新的。对于MySQL Connector/J 5.1.x及更高版本,应使用 com.mysql.cj.jdbc.Driver。

  2. 更新依赖:如果你的项目是通过Maven或Gradle等构建工具管理的,确保你的pom.xml或build.gradle文件中引用了正确的MySQL Connector/J依赖项。

  3. 检查项目库:如果你的项目没有使用构建工具,确保你已将正确的MySQL Connector/J JAR文件添加到项目的类路径中。

  4. 清理和重新构建:在更新类名和依赖项后,清理并重新构建你的项目以确保更改生效。

2、代码示例

如果你使用的是较新的MySQL Connector/J版本,你应将代码中的驱动类名更改为:

// 旧的驱动类名(不推荐使用)  
// Class.forName("org.gjt.mm.mysql.Driver");  
  
// 新的驱动类名  

Class.forName("com.mysql.cj.jdbc.Driver");

但是,从JDBC 4.0开始,显式加载驱动类的步骤(Class.forName(…))通常是不必要的,因为JDBC服务提供者机制会自动加载驱动。因此,在大多数情况下,你可以完全移除这行代码。
Maven依赖示例

如果你使用Maven管理项目依赖,确保你的pom.xml文件中包含了类似以下内容的依赖:

xml

<

dependency>  
    <groupId>mysql</groupId>  
    <artifactId>mysql-connector-java</artifactId>  
    <version>8.0.x</version> <!-- 使用你需要的最新版本 -->  

</dependency>

将8.0.x替换为你需要或想要使用的MySQL Connector/J的具体版本号。Gradle依赖示例
如果你使用Gradle管理项目依赖,确保你的build.gradle文件中包含了类似以下内容的依赖:

dependencies {  
    implementation 'mysql:mysql-connector-java:8.0.x' // 使用你需要的最新版本  

}

同样,将8.0.x替换为你需要或想要使用的MySQL Connector/J的具体版本号。

3、注意事项

  • 在更新驱动类名或依赖项时,确保你的代码库、构建文件以及所有相关的配置都已更新。
  • 如果你在更新后遇到任何编译或运行时错误,请仔细检查你的代码和依赖项配置,以确保它们都是最新的且相互兼容。
  • 如果你正在使用IDE(如IntelliJIDEA或Eclipse),确保你的IDE已经正确加载了新的依赖项,并且你的项目已经刷新以反映这些更改。
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐