解决java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

mysql8.0.19
mysql-connector-java-8.0.20.jar
IntelliJ IDEA 2020.1.1 (Ultimate Edition)

import java.sql.Connection;
import java.sql.DriverManager;

public class DBConnection {

    // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
    private static final String Driver = "com.mysql.cj.jdbc.Driver";
    private static final String URL = "jdbc:mysql://localhost:3306/testweb?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8";
    // 数据库的用户名与密码,需要根据自己的设置
    private static final String USER = "root";
    private static final String PASSWORD = "KBjiayou666";
    private Connection conn = null;

    public DBConnection() throws Exception {            //进行数据库的连接
        try{
            Class.forName(Driver);
            this.conn = DriverManager.getConnection(URL,USER,PASSWORD);
        } catch (Exception e){
            throw e;
        }
    }

    public Connection getConnection(){                  //取得与数据库的连接
        return this.conn;
    }


    public void close() throws Exception{               //关闭数据库的连接
        if(this.conn !=null){
            try {
                this.conn.close();
            }catch (Exception e){
                throw e;
            }

        }
    }
}

在 Class.forName(Driver)出错了,报错信息java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
造成此问题的原因有:

  1. 驱动名错误,没有和mysql版本对应。

  2. idea没有导入connector的jar包
    so on…

分析:
由于 MySQL 8.0 以上版本 - JDBC 驱动名有个cj
所以我确保没有写错驱动名以及URL

// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
 
    // MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
    //static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
    //static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&serverTimezone=UTC";

具体请参考runoob的java连接数据库教程(点击传送门)

于是尝试解决问题2
点击file ->project structure
在这里插入图片描述
在这里插入图片描述
点击OK
重启IDEA
再运行java程序 ok~

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值