Witam. Mam bazę danych, w której jest tabela samoloty:
create table samoloty (
id_samolotu number(6,0) constraint samoloty_pk primary key,
nazwa varchar2(20),
typ varchar2(20),
pojemnosc number(6,0)
);
I chcę w programie napisanym w Javie dodać wpis do bazy. W programie mam menu i wybieram przycisk dodaj samolot i wyskakuje mi jFrame z trzema jTextami do wprowadzenia nazwy, typu i pojemności. Napisałem coś takiego do dodania tych danych:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String sql = " INSERT INTO samoloty VALUES (?,?,?,?)";
String server = "localhost";
int port = 1521;
String database = "XE";
String login = "HR";
String password = "asdfghj";
int p;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String connectionString = "jdbc:oracle:thin:@" + server + ":" + port + ":" + "XE";
Connection con = DriverManager.getConnection(connectionString, login, password);
PreparedStatement cs = null;
p = Integer.parseInt(jTextField3.getText());
cs.setInt(1, 0);
cs.setString(2, jTextField1.getText());
cs.setString(3, jTextField2.getText());
cs.setInt(4, p);
cs.executeUpdate();
cs.close();
con.close();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
Jednak po wypełnieniu pól i kliknięciu dodaj powyższa metoda wywala błąd: NULLPointerException.
Mam pytanie czy powyższa metoda jest dobra? Powinna mi dodać wpisy do tabeli?
Czy jeśli w tabeli mam np. zmienne typu number a jText przyjmuje Stringi to muszę tak jak powyżej
p = Integer.parseInt(jTextField3.getText());
konwertować typ String na int aby do tabeli wprowadzić daną za number?