我正在创建一个简单的jdbcjava应用程序,获取类notfoundexception

az31mfrm  于 2021-06-19  发布在  Mysql
关注(0)|答案(3)|浏览(249)

这个问题在这里已经有答案了

将java连接到mysql数据库(14个答案)
两年前关门了。
我正在创建一个简单的jdbcjava应用程序,我在库中添加了mysql jar文件,并将其保存在参考库中,但得到的错误是java.lang.classnotfoundexception
我正在使用mysql 8.0.12

java.lang.ClassNotFoundException: com.mysql.jdbc.driver
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at Jdbc.main(Jdbc.java:15)
java.lang.NullPointerException
    at Jdbc.main(Jdbc.java:32)

我的代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Savepoint;
import java.sql.Statement;

public class Jdbc {

    public static void main(String[] args) {
        Connection con=null;
        Statement st=null;

    try {
        Class.forName("com.mysql.jdbc.driver");
        con=DriverManager.getConnection("jdbc:mysql//localhost:3306/rakeshdb","root","raki");
        con.setAutoCommit(false);
        st=con.createStatement();

        st.executeUpdate("insert into emp values(111,'RAkE',100000,'hyd')");
        Savepoint sp=con.setSavepoint();
        st.executeUpdate("insert into emp values(222,'RAkESH',10000,'sec')");
        con.rollback();
        st.executeUpdate("insert into emp values(333,'RAkI',1000,'bvrm')");
        con.commit();
        System.out.println("Transcation SUCCESS");
    } catch (Exception e) {
        e.printStackTrace();
        try {
            con.rollback();
            System.out.println("Transcation FAILURE");
        } catch (Exception e2) {
        e2.printStackTrace();
        }

    }finally {

    }

    }
}
kiayqfof

kiayqfof1#

预计:

java.lang.ClassNotFoundException: com.mysql.jdbc.driver

作为 com.mysql.jdbc.driver 不是mysql的jdbc驱动程序类。
但是 com.mysql.jdbc.Driver 是。

qvk1mo1f

qvk1mo1f2#

您需要从它们的(sql)站点和库中的input.jar文件安装sql驱动程序。

jogvjijk

jogvjijk3#

出现错误是因为在中提供了错误的驱动程序类详细信息 Class.forName() .
我建议你不要把这个当作 Class.forName() 从JDBC4.0开始就不需要了。在类路径中找到的任何JDBC4.0驱动程序都会自动加载。
所以,试试看 commenting that line 运行你的程序。如果类路径中有驱动程序jar文件,则应该自动加载它(假设您使用的是jdbc4.0驱动程序)

相关问题