我正在创建一个简单的JDBC Java应用程序,并且我在库中添加了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 {
}
}
}
答案 0 :(得分:2)
预计:
java.lang.ClassNotFoundException: com.mysql.jdbc.driver
因为com.mysql.jdbc.driver
不是MySQL的JDBC驱动程序类。
但是com.mysql.jdbc.Driver
是。
答案 1 :(得分:0)
您需要从其(SQL)站点安装Java的SQL驱动程序,并在库中输入.jar文件。
答案 2 :(得分:0)
您收到此错误,因为您在Class.forName()
中提供了错误的驱动程序类详细信息。
我建议您完全不要使用它,因为从JDBC 4.0开始就不需要Class.forName()
。在类路径中找到的所有JDBC 4.0驱动程序都会自动加载。
因此,请尝试commenting that line
并运行程序。如果您在类路径中有驱动程序jar文件,则应该将其自动加载(假设您正在使用JDBC 4.0驱动程序)