2012-03-12 3 views
1

Я хочу, чтобы удалить три таблицы сразу, и я создать довольно простое заявление SQL по этому вопросу следующим образом:Как запустить несколько команд Delete sql с помощью java JDBC?

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

это утверждение верно, когда я бегу в MySQL напрямую, но из Явы нет!

мой код 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; 
    } 

, как я могу запустить несколько операторов SQL в один раз в Java?

+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 будет содержать массив с количеством строк, удаленных из каждой таблицы.

Смежные вопросы