2015-10-17 67 views
0

執行插入查詢時出現空指針異常。一切似乎都很好,但問題依然存在。對於使用JDBC的查詢執行更新時爲空指針異常

用於數據庫連接的代碼。

public class DBConnect 
{ 
    static Connection c ; 
    static Statement st ; 
    { 
     try 
     { 
      Class.forName("oracle.jdbc.driver.OracleDriver"); 
      c=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","ashuthesmartest","ashutosha"); 
      st=c.createStatement(); 
     } 
     catch (Exception ex) 
     { 
      JOptionPane.showMessageDialog(null, "Database error"); 
     } 
    } 
} 

執行的操作的按鈕點擊

private void b3ActionPerformed(java.awt.event.ActionEvent evt) {         
    try 
    { 
     char[] arr = pa1.getPassword() ; 
     String s2 = Arrays.toString(arr) ; 
     String s1 = t3.getText() ; 
     DBConnect.st.executeUpdate("insert into LOGIN values('"+s1+"','"+s2+"')"); **//EXCEPTION IN THIS LINE** 
    } 
    catch (Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
} 

回答

3

在其中創建連接的初始化塊和語句不是靜態初始化塊。

因此,它只會在您創建類DBConnect的實例時執行。

由於您似乎只使用靜態的DBConnect,所以從未發生過。你的初始化塊應該是靜態的。靜態初始化塊在左括號前有關鍵字static

static { 
    // try etc. 
} 
+0

噢,親愛的!這是一個非常愚蠢的錯誤,我後悔犯下。感謝您的幫助RealSkeptic。 –