如何在JavaJDBC的帮助下运行多个DELETESQL语句?

如何在JavaJDBC的帮助下运行多个DELETESQL语句?,java,jdbc,Java,Jdbc,我想一次删除三个不同的表,为此我创建了一个非常简单的SQL语句,如下所示: DELETE FROM tbl1;DELETE FROM tbl2;DELETE FROM tbl3; 当我直接在mysql中运行时,这个语句是正确的,但是从java中运行时,没有 我的java代码: public boolean clearTables() { boolean ans = false; if (con != null) {

我想一次删除三个不同的表,为此我创建了一个非常简单的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语句?

使用addBatch然后使用executeBatch:

然后,结果将包含一个数组,其中包含从每个表中删除的行数。

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