時候當我運行在非批處理模式下的代碼,它的工作原理:一旦JDBC似乎並不想打電話給刪除的PreparedStatement批處理對MySQL
PreparedStatement preparedStatement = connection.prepareStatement(
"DELETE FROM myTable WHERE id=58");
preparedStatement.execute();
但是我嘗試在批處理模式下運行:
PreparedStatement preparedStatement = connection.prepareStatement(
"DELETE FROM myTable WHERE id=58");
preparedStatement.executeBatch();
它不會再從表中刪除條目。我所有的INSERTS
與executeBatch
都可以很好地工作,事實上除了DELETE
命令外,其他的都是如此。它不會返回任何類型的錯誤,它似乎忽略該命令並跳過它。如果我通過查看int []來檢查受到影響的列的數量,它將返回空列表(int [] .length = 0)。
更新:我不認爲這是一個權限問題,因爲用戶帳戶具有完整的root權限並可以訪問所有命令。如果這是一個權限問題,那麼它不應該在非批處理模式下工作。
是'id'主鍵? – nullpointer
是的,這是一個主鍵 –
該代碼將失敗,SQL語法錯誤。嘗試正確拼寫關鍵字,即「WHERE」,而不是「WERE」。 – Andreas