使用JDBC的查询的executeUpdate时为空指针异常

时间:2015-10-17 19:59:56

标签: java mysql swing jdbc jdbc-odbc

执行插入查询时,我收到Null指针异常。一切似乎都很好,但问题仍然存在。

用于数据库连接的代码。

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

1 个答案:

答案 0 :(得分:3)

创建连接的初始化块和语句不是静态初始化块。

因此,只有在创建类DBConnect的实例时才会执行它。

由于您似乎只是静态使用DBConnect,因此永远不会发生。您的初始化块应该是静态的。静态初始化块在左括号前面有关键字static

static {
    // try etc.
}