2013-01-14 15 views
1

我在netbeans中做了一個java程序,它在我的數據庫中執行不同的查詢。當我在表中添加數據時遇到問題。它將數據插入前兩個表中,但不是第三個表中的數據。下面的代碼:如何一次添加多個表中的行?

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(); 

這裏是表的信息:

enter image description here

我想查詢是錯誤的或表的概念,但我不知道。請告訴我你的想法。

回答

3

你需要改變你的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的。

+1

光滑!謝謝! –