我在數據庫中有一些簡單的表(比如說Oracle10g),我需要實現在DAO刪除多條記錄的能力。方法remove()
接收一個ids(整數)數組作爲參數。在一條語句中刪除多行
現在我有一個查詢字符串"DELETE FROM news WHERE id = ?"
,我使用PreparedStatement。我只需爲陣列中的每個ID添加批處理,然後在PreparedStatement上執行執行。
我想知道是否有能力通過一個查詢語句來執行它,比如"DELETE FROM news WHERE id IN ?"
。但我找不到如何正確設置整數數組而不是'?'
。
同樣的問題適用於休眠和JPA。如果有任何解決辦法可以解決這個問題?因爲現在我使用類似批處理的方式:在陣列和提交事務的每個id上添加查詢至會話。
看到這個答案:http://stackoverflow.com/a/189399/851432。它指向一個[鏈接](http://www.javaranch.com/journal/200510/Journal200510.jsp#a2),在這種情況下這可能很有用。 – Jomoos