0

我的错误!

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());
        }
    }
 }
4

1 回答 1

0

错误正是它所说的。需要处理(捕获或抛出)通过反射进行的新实例实例化。

也就是说,你没有对新实例做任何事情——你没有将它分配给任何东西,在这种情况下,它甚至不需要被调用。

Class.forName("com.mysql.jdbc.Driver");

就是这样 - 它会修复错误。

意识到这仍然潜伏在代码中的其他问题 - 其中一个是如果您遇到无法加载类的错误,它将打印出一条错误消息,但随后它将在下一个尝试块中继续并再次出现错误。

于 2013-05-09T13:41:47.413 回答