2013-05-09 108 views
0

我的錯誤!jdbc錯誤java類試圖連接到linux的mysql服務器

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

錯誤正是它說,這是。需要處理(捕獲或拋出)通過反射的新實例實例化。

也就是說,你沒有對新實例做任何事情 - 你沒有把它分配給任何東西,在這種情況下,它甚至不需要被調用。

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

只是 - 它會修復錯誤。

認識到這仍然存在潛伏在代碼中的其他問題 - 其中之一是如果你有錯誤,無法加載它的類,它會打印出一個錯誤消息,但它會繼續在下一次嘗試塊並出錯再次那裏。