Как запустить несколько операторов удаления SQL с помощью Java JDBC? - PullRequest
1 голос
/ 13 марта 2012

Я хочу удалить три разные таблицы одновременно, и я создал довольно простую инструкцию 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;
     }

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

Ответы [ 2 ]

8 голосов
/ 13 марта 2012

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

2 голосов
/ 13 марта 2012

использовать пакетные обновления

http://docs.oracle.com/javase/1.3/docs/guide/jdbc/spec2/jdbc2.1.frame6.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...