使用postgresql NOT IN语句的java
我在春天有一个问题:
private String SQL_Clear_Deleted_Options = "DELETE FROM vote_votes WHERE poll_id=? AND option_id NOT IN ?"
我的问题是第二个?
。正确的形式应该是(id1,id2,id3,…)。如何将类似cl="0,1,2,3,6"
的字符串传递到此查询
我正在使用jdbcTemplate。是的
jdbcTemplate.update(SQL_Clear_Deleted_Options, id,cl)
应该是什么
# 1 楼答案
您可以使用PreparedStatement的setArray设置多个值。 https://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html#setArray(int,%20java.sql.Array)
数组应该是正确的类型,因此您可以使用连接创建它。createArrayOf函数: https://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#createArrayOf(java.lang.String,%20java.lang.Object[])
你可以看到很多关于该主题的讨论,例如: How to use an arraylist as a prepared statement parameter
编辑:忘记提及:当数组作为参数给定时,JdbcTemplate应该正确设置参数