use*_*168 2 java sql postgresql jdbc prepared-statement
如何在 JDBC 中设置整数数组(用setArrayfor 子句准备的语句?
String query = "SELECT * FROM table WHERE id IN (?)";
// other things.
// ArrayList<Integer> some_ids;
preparedStatement.setArray(1, conn.createArrayOf("INTEGER", some_ids.toArray()));
Run Code Online (Sandbox Code Playgroud)
它编译,但执行从 Postgres 返回它。
ERROR: cannot cast type integer[] to integer
Run Code Online (Sandbox Code Playgroud)
在 PostgreSQL 中你必须使用= ANY(?)而不是IN (?)
"SELECT * FROM table WHERE id = ANY(?)";
Run Code Online (Sandbox Code Playgroud)
看看这个:9.21.3。任何/一些(阵列)