Java连接免费SQL数据库报错:com.mysql.jdbc.Driver类未找到求助
解决Java连接MySQL时的ClassNotFoundException问题
你碰到的java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误,本质是项目里没引入MySQL的JDBC驱动包,导致JVM找不到这个驱动类。下面是具体解决步骤:
1. 明确驱动版本对应关系
com.mysql.jdbc.Driver是MySQL JDBC驱动5.x版本的类名,如果你用的是Java 8及以上版本,更推荐用8.x版本的驱动(类名是com.mysql.cj.jdbc.Driver),而且JDBC 4.0+规范(Java 6及以上支持)会自动加载驱动,不需要手动写Class.forName()代码。
2. 给项目添加驱动依赖
若用Maven管理项目
直接在pom.xml里添加以下依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> <!-- 可替换为最新稳定版 --> </dependency>
添加后刷新Maven,依赖会自动下载。
若为普通Java项目(无构建工具)
- 下载对应版本的MySQL驱动jar包(比如mysql-connector-java-8.0.33.jar)
- 在项目根目录新建
lib文件夹,将jar包放入其中 - 在IDE中把jar包添加为项目库:
- IDEA:右键lib里的jar包 → 选择「Add as Library」
- Eclipse:右键项目 → 「Build Path」→ 「Add External Archives」,选中下载的jar包
3. 调整代码(适配8.x驱动)
用8.x驱动的话,代码可简化,同时建议在JDBC URL中加入时区参数,避免时区相关报错:
import java.sql.*; public class Main { public static void main(String[] args) { Connection connection = null; try { // 8.x驱动无需手动加载Class.forName String url = "jdbc:mysql://sql9.freesqldatabase.com:3306/sql9581604?useSSL=false&serverTimezone=UTC"; connection = DriverManager.getConnection(url, "sql9581604", "ih8h2nhpxC"); System.out.println("数据库连接成功!"); } catch (Exception e) { e.printStackTrace(); } finally { // 用完连接记得关闭,避免资源浪费 try { if (connection != null) { connection.close(); } } catch (SQLException e) { e.printStackTrace(); } } } }
额外注意事项
- 驱动版本要和MySQL服务器版本兼容,8.x驱动可兼容5.7及以上的MySQL服务器,免费数据库平台基本都是新版本,用8.x没问题
- 确保驱动jar包确实被项目类加载器识别,不要随意放在无关目录里
内容的提问来源于stack exchange,提问作者Bean
相关产品推荐
相关产品推荐

