0

データベースでさまざまなクエリを実行するJavaプログラムをnetbeansで作成しました。テーブルにデータを追加するときに問題が発生します。最初の2つのテーブルにはデータが挿入されますが、3番目のテーブルにもデータは挿入されません。コードは次のとおりです。

String sql="INSERT INTO  `adresa` (`ID` ,`TARA` ,`JUDET` ,`LOC` ,`CPOSTAL` ,`STRADA` ,`NR` ,`BLOC` ,`SC` ,`APT`) VALUES (?,?,?,?,?,?,?,?,?,?)";
    pst=conn.prepareStatement(sql);
    pst.setString(1, ID.getText());
    pst.setString(2, tara.getText());
    pst.setString(3, judet.getText());
    pst.setString(4, loc.getText());
    pst.setString(5, cpostal.getText());
    pst.setString(6, strada.getText());
    pst.setString(7, nr.getText());
    pst.setString(8, bloc.getText());
    pst.setString(9, sc.getText());
    pst.setString(10, apt.getText());
    pst.execute();

String sql2="INSERT INTO  `pbd`.`buletin` (`CNP` ,`DATAN` ,`SEX` ,`SERIENRB` ,`DATAEMIT` ,`DATAEXP`) VALUES (?,?,?,?,?,?);";
pst.setString(1, CNP.getText());
pst.setString(2, datan.getText());
pst.setString(3, sex.getText());
pst.setString(4, serienrb.getText());
pst.setString(5, dataemit.getText());
pst.setString(6, dataexp.getText());
pst.executeBatch();

String sql3="INSERT INTO  `pbd`.`persoana` (`ID` ,`CNP` ,`NUME` ,`PRENUME` ,`NATIONALITATE` ,`VIU`) VALUES (?,?,?,?,?,?);";
pst.setString(1, ID.getText());
pst.setString(2, CNP.getText());
pst.setString(3, nume.getText());
pst.setString(4, prenume.getText());
pst.setString(5, nationalitate.getText());
pst.setString(6, viu.getText());
pst.executeBatch();

そしてここにテーブル情報があります:

ここに画像の説明を入力してください

クエリやテーブルの概念が間違っていると思いますが、よくわかりません。どう思いますか?

4

1 に答える 1

2

sql2とsql3のコードを次のように変更する必要があります

pst.close();
String sql2="INSERT ...
pst=conn.prepareStatement(sql2);
...
pst.executeUpdate();

pst.close();
String sql3="INSERT ...
pst=conn.prepareStatement(sql3);
...
pst.executeUpdate();

この場合、executeBatchは関係ありません。これは、同じSQLの異なるパラメーターセットにのみ使用できます。

于 2013-01-14T01:33:09.113 に答える