插入记录时获取Nullpointerexception

时间:2015-04-09 20:08:34

标签: java sqlite jdbc

我尝试使用prepare语句将数据插入到我的数据库中,但是我得到了Nullpointerexception

我的数据库连接代码

public class DBConnect {
    Connection conn=null;

      public static Connection connecrDb(){
          try{
          Class.forName("org.sqlite.JDBC");
          Connection conn = DriverManager.getConnection("jdbc:sqlite:E:\\NetBeansProjects\\Abdo`s Project\\project.sqlite");
              System.out.println("connection success");
              conn.setAutoCommit(false);
          return conn;
          }
          catch(Exception e){
              JOptionPane.showMessageDialog(null, e);
              return null;
          }
      }

}

和我在Main Class中的代码

public class Items extends javax.swing.JFrame {


    Connection conn =null;
    ResultSet rs = null;
    PreparedStatement pst=null;
    public Items() {
        initComponents();
        DBConnect.connecrDb();
    }

    private void SaveBtnActionPerformed(java.awt.event.ActionEvent evt) {                                        

        try{


           String sql = "INSERT INTO test (name) values(?)";
           pst=conn.prepareStatement(sql);
           pst.setString(1,item_name.getText() );
           pst.executeUpdate(); 
           conn.commit();
        }
        catch(Exception e ){
                      System.out.println(e);
            System.out.println(e.getStackTrace());  
        }


    } 

输出

java.lang.NullPointerException

[Ljava.lang.StackTraceElement;@7da469fe

我的代码有什么问题?

1 个答案:

答案 0 :(得分:0)

保存按钮ActionPerformed中的

conn为空。在Item类中初始化它:

public class Items extends javax.swing.JFrame {

    Connection conn = DriverManager.getConnection("jdbc:sqlite:E:\\NetBeansProjects\\Abdo`s Project\\project.sqlite");

您也可以在方法中初始化它,但只需确保在使用它之前对其进行初始化。