2012-03-12 10 views
1

は私が一度に三つの異なるテーブルを削除したいと私は次のようにそのことについては非常に単純なSQL文を作成してもらう:java JDBCの助けを借りて複数のDelete SQL文を実行するには?

DELETE FROM tbl1;DELETE FROM tbl2;DELETE FROM tbl3; 

この文はありません、私が直接MySQLで実行したときに正しいですが、Javaから!

私のJavaコード:

public boolean clearTables() 
    { 
     boolean ans = false; 
     if (con != null) 
     { 
      try 
      { 
       String deleteQuery = " DELETE FROM tbl1;DELETE FROM tbl2;DELETE FROM tbl3;"; 
       Statement st = con.createStatement(); 
       st.execute(deleteQuery); 

       ans = true; 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
       ans= false; 
      } 
     } 
     return ans; 
    } 

は、どのように私はJavaで一度に複数のSQL文を実行できますか?

+0

あなたはあなたの質問で述べた 'DELETE'文を一度に実行されません。それらはあなたが提供した順序で順番に実行されます。 – Lion

答えて

8

使用addBatch次いでexecuteBatch:そして

Statement st = con.createStatement(); 
    st.addBatch("DELETE FROM tbl1"); 
    st.addBatch("DELETE FROM tbl2"); 
    st.addBatch("DELETE FROM tbl3"); 
    int[] results = st.executeBatch(); 
results

各テーブルから削除された行の数と配列を含むであろう。

関連する問題