JDBC无法与Java连接:MySQL Connector导入后报类找不到异常
解决MySQL Connector 8.0.11在NetBeans中连接Java的ClassNotFoundException问题
我来帮你搞定这个连接问题,你遇到的ClassNotFoundException主要是两个核心问题:驱动类名写错了,或者NetBeans没正确加载你添加的JAR包,咱们一步步来修复:
1. 修正驱动类名(最关键的错误)
你代码里写的com.mysql.jdbc.cj.Driver是不对的,MySQL 8.0.x版本的正确驱动类路径是com.mysql.cj.jdbc.Driver,这个类名的顺序搞反了,直接导致JVM找不到对应的类文件。
2. 确保NetBeans正确识别JAR包
只把JAR复制到项目lib目录还不够,NetBeans需要手动将它添加到项目的依赖库中:
- 右键你的项目 -> 选择「Properties」
- 切换到「Libraries」选项卡
- 点击「Add JAR/Folder」,找到你放在lib目录里的
mysql-connector-java-8.0.11.jar,选中并添加 - 添加完成后,确认Libraries列表里能看到这个JAR,这样编译和运行时才会加载它
3. 调整JDBC URL参数(MySQL 8.0必填)
MySQL 8.0要求必须指定时区参数,否则即使驱动正确,也可能抛出时区相关的SQLException,建议把你的URL修改为:
jdbc:mysql://localhost/myinfo?useSSL=false&serverTimezone=UTC
修改后的完整代码
import java.sql.*; public class Learnjdbc { public static String name="root"; public static String password="ismail19972018"; // 添加时区参数的URL public static String url="jdbc:mysql://localhost/myinfo?useSSL=false&serverTimezone=UTC"; public static void main(String[] args) throws ClassNotFoundException { Connection connect=null; Statement stm=null; PreparedStatement prstm=null; ResultSet rs=null; try{ // 修正后的驱动类名 Class.forName("com.mysql.cj.jdbc.Driver"); connect=DriverManager.getConnection(url,name,password); System.out.println("connected"); }catch(SQLException ex){ ex.printStackTrace(); } finally { // 别忘了关闭数据库资源,避免内存泄漏 try { if (rs != null) rs.close(); if (prstm != null) prstm.close(); if (stm != null) stm.close(); if (connect != null) connect.close(); } catch (SQLException e) { e.printStackTrace(); } } } }
按照上面的步骤修改后,重新运行项目,应该就能成功连接MySQL了。
内容的提问来源于stack exchange,提问作者Ismail Bouaddi
相关产品推荐
相关产品推荐

