问题遇到的现象和发生背景
现象:运行后抛出了java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver。
背景:我用IDEA 创建了一个JAVA项目,专用于连接MYSQL的java程序,然后在使用class.forname("xx");的时候出现异常。代码是没有问题的,因为我把代码放到以前的,同样使用过 连接数据库的 项目里,是没有任何问题的,那个项目的种种配置和这么项目一样。
问题相关代码,请勿粘贴截图
import java.sql.*;
import java.util.Objects;
public class JDBC {
private static Connection con;
public static void main(String[] args){
String s="bookdb";
try{
connect_db(s);
}catch (Throwable e){
e.printStackTrace();
}
}
public static void connect_db(String db_name) throws Throwable {
Class.forName("com.mysql.cj.jdbc.Driver");
//连接数据库
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+db_name+"?serverTimezone=UTC", "root", "123456");
//验证是否连接到数据库
if (con != null) {
System.out.println("连接成功!");
} else {
System.out.println("连接失败!");
}
Statement s = con.createStatement();
System.out.println("获取 Statement对象: " + s);
}
public void close_db() throws SQLException {
con.close();
System.out.println("连接被关闭!");
}
public boolean executing_sql(String sql) throws SQLException {
//executer
//PreparedStatement ps =con.prepareStatement(sql);
Statement stmt;
stmt = Objects.requireNonNull(con).createStatement();
//executing
try {
ResultSet rs = stmt.executeQuery(sql);
return true;
} catch (SQLException e) {
e.printStackTrace();
}finally {
return false;
}
//ResultSet rs = stmt.executeQuery(Sql);
}
}
运行结果及报错内容
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:375)
at JDBC.connect_db(JDBC.java:18)
at JDBC.main(JDBC.java:11)
我的解答思路和尝试过的方法
尝试过:1.按步骤重新导入mysql-connection-java-8.0.16.jar,
2.为.jar建立依赖(在项目结构里)
3.
我想要达到的结果
通过配置后,不会有异常