如何在JDBC中设置一个整数数组(带有setArray
的预处理语句用于in子句?
String query = "SELECT * FROM table WHERE id IN (?)";
// other things.
// ArrayList<Integer> some_ids;
preparedStatement.setArray(1, conn.createArrayOf("INTEGER", some_ids.toArray()));
它编译,但执行从Postgres返回。
ERROR: cannot cast type integer[] to integer
答案 0 :(得分:4)
在PostgreSQL中你必须使用= ANY(?)
而不是IN (?)
"SELECT * FROM table WHERE id = ANY(?)";