2015-05-14 2 views
0

Я не знаю, что не так с моим кодом, он действительно смутился.Sqlite null Указатель исключения

btnDone.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
      enterproject1 obj1 = new enterproject1(); 
      String pn = obj1.getprojectname(); 
      Connection conni = null; 

      try { 
        String query=("insert into " + obj1.getprojectname() + " (engname,engpass,startingdate,estdate) values(?,?,?,?)"); 
        PreparedStatement pst= conni.prepareStatement(query); 

        pst.setString(1, engineername.getText()); 
        pst.setString(2, engpass.getText()); 
        pst.setString(3, startingdate.getText()); 
        pst.setString(4, estdatee.getText()); 
        pst.execute(); 
        JOptionPane.showMessageDialog(null, "Data Saved!"); 

        System.out.println(pst.toString()); 

        pst.close(); 
       } catch (Exception e) { 
        System.err.println(e.getClass().getName() + ": " + e.getMessage()); 

        System.exit(0); 
       } 
       dispose(); 
       WindowProjectAdmin blue = new WindowProjectAdmin(); 
     } 
    }); 
    btnDone.setFont(new Font("Tahoma", Font.BOLD, 13)); 
    btnDone.setForeground(new Color(0, 255, 0)); 
    btnDone.setBounds(332, 327, 97, 38); 
    contentPane.add(btnDone); 
} 

}

Должно работать правильно? Дает мне исключение Null pointer. Obj1 - это значение из другого класса, я уверен, что вызов выполняется правильно. Спасибо за ваше время^-^

+1

Пожалуйста, сообщите нам, в какой строке произошло «NullPointerException», или, еще лучше, покажите нам трассировку стека. –

ответ

1

Похоже, что вы инициализируете переменное подключение к нулю

Connection conni = null; 

, а затем использовать его здесь:

PreparedStatement pst= conni.prepareStatement(query); 

Conni еще нуль в этой точке, следовательно, исключение нулевого указателя.

+0

После этого он говорит: java.sql.SQLException: [SQLITE_ERROR] Ошибка SQL или отсутствующая база данных (около "(": синтаксическая ошибка) –

+0

Это указывает на то, что команда SQL имеет синтаксическую ошибку. Что означает 'obj1.getprojectname() 'return? Мое подозрение состоит в том, что это вызывает синтаксическую ошибку, вставив некоторый недопустимый SQL в команду – gareththegeek

+0

. Он возвращает текстовое значение из текстового поля в другом классе. Я верю, что верю. –

Смежные вопросы