0

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

「ソースが見つかりません」というメッセージが表示されるため、デバッグできません。デバッグ ビューでエラーが発生しました。誰でも助けてもらえますか?

4

1 に答える 1

0

さて、タスクを終了したかったので、OOではないソリューションを実装しました:

4 つのクラスすべてに冗長コードを実装し、すべてのクラスが独自の SQL ステートメントを実装しています。速くて汚い;)

于 2012-04-22T12:12:01.687 に答える