2016-05-31 48 views
3

想要在JdbcTemplate的幫助下刪除多行。 在下面的代碼中,msgNos是一個包含逗號分隔值(如26,27)的字符串變量。執行完這些語句後,它只會刪除一條記錄。如何使用JdbcTemplate刪除多行

String sqlQuery = " delete from canned_message where msg_no in (?)"; 
Object[] params = {msgNos}; 
int rows = smsdbJdbcTemplate.update(sqlQuery, params); 

回答

6

代替org.springframework.jdbc.core.JdbcTemplate使用org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate在那裏你可以使用命名參數。

然後在你的查詢,你可以在通過List作爲參數值在第

String sqlQuery = "delete from canned_message where msg_no in (:msgNos)"; 
List<Integer> params = <array list of number>; 
Map namedParameters = Collections.singletonMap("msgNos", params); 
int rows = smsdbJdbcTemplate.update(sqlQuery, namedParameters); 

注:我用List<Integer>使用適當的數據類型,因爲你需要。

+0

感謝您的建議,它與NamedParameterJdbcTemplate –