Statement的execute等方法一次只能执行一个SQL叙述,如果有多个SQL叙述要执行的话,可以使用executeBatch()方法,在一次方法呼叫中执行多个SQL叙述,以增加执行的效能,我们先使用addBatch()方法将要执行的SQL叙述加入,然后执行 executeBatch()即可:
conn.setAutoCommit(false); Statement stmt = conn.createStatement(); stmt.addBatch("INSERT INTO message VALUES('良葛格'," + " 'caterpillar@mail.com', '留言吧', " + "'2004-5-26', '到此一游')"); stmt.addBatch("INSERT INTO message VALUES('米小狗'," + " 'dog@mail.com', '留言耶', " + "'2004-5-26', '啦啦啦')"); stmt.addBatch("INSERT INTO message VALUES('毛妹妹'," + " 'momor@mail.com', '留言吧', " + "'2004-5-26', '到此一游')"); stmt.executeBatch(); conn.commit();
在执行executeBatch()时而SQL有错误的情况下,会丢出BatchUpdateException例外,您可以由这个例外对象的 getUpdateCounts()方法取得正确的SQL句数。