MySQL データベースにいくつかのエントリを作成したいと考えています。一部のテーブルは外部キーを介して他のテーブルを参照するため、挿入された ID を取得して次のステートメントに挿入する必要があります。
私は4つのクラスを持っています:
下宿者フォームテスト家賃
フォーム家賃
オブジェクト
ハウス
そして、MySQL ステートメントをデータベースに挿入するクラス: sql_statements
SQL ステートメントを送信しようとすると、nullPointer 例外が発生します。
House クラスのアクション リスナー (これは、送信する必要がある最初の sql ステートメントです) は次のようになります。
saveButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println("saveButton");
// sql_statements statements = new sql_statements();
sql_statements.performHouse(strasse.getText(), plz.getText(), ort.getText());
mainmenu.create();
rentnerFrame.dispose();
}
});
sql_statements で使用しているすべてのメソッドと変数は静的です! したがって、私はオブジェクトをインスタンス化していません。
これがsql_statementsのメソッド「performHouse」です
public static void performHouse(String strasse, String plz, String ort) {
String sql = "insert into haus(strasse, plz, ort) values (?,?,?)";
System.out.println(sql);
try{
ps = connect.prepareStatement(sql, ps.RETURN_GENERATED_KEYS);
ps.setString(1, strasse);
ps.setString(2, plz);
ps.setString(3, ort);
ps.execute();
rs = ps.getGeneratedKeys();
if(rs != null && rs.next()) {
// Retrieve the auto generated key(s).
key_idhaus = rs.getLong(1);
System.out.println("idhaus: " + key_idhaus);
}
}catch(Exception ex){
System.out.println(ex);
}
} // close performHouse-methode
「ソースが見つかりません」というメッセージが表示されるため、デバッグできません。デバッグ ビューでエラーが発生しました。誰でも助けてもらえますか?