我的错误!
DBConnection2.java:38:未报告的异常java.lang.InstantiationException;必须被抓住或宣布被抛出 的Class.forName( “com.mysql.jdbc.Driver”)的newInstance();
问题:.newInstance();
我的代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import java.util.*;
import java.sql.*;
import java.util.StringTokenizer;
public class DBConnection2 {
String url = "jdbc:mysql://<myserver>/<myDatabase>";
java.sql.Connection con = null;
String query1;
Statement stmt;
public DBConnection2()
{
try
{
//***error here*****
Class.forName("com.mysql.jdbc.Driver").newInstance();
//***error here*****
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
try
{
con = java.sql.DriverManager.getConnection(url,"read","read");
stmt = con.createStatement();
}
catch(SQLException ex)
{
System.err.println("SQLException:72 appserver " + ex.getMessage());
}
}
}
答案 0 :(得分:0)
错误正是它所说的。需要处理(捕获或抛出)通过反射的新实例实例化。
那就是说,你没有对新实例做任何事情 - 你没有把它分配给任何东西,在这种情况下,它甚至不需要被调用。
Class.forName("com.mysql.jdbc.Driver");
就是这样 - 它将解决错误。
意识到这仍然存在潜伏在代码中的其他问题 - 其中一个问题是如果你有错误,无法加载它的类,它将打印出一条错误信息,但它会继续在接下来尝试阻止并再次出错 。