我正在使用 Java 1.7 和 JDBC 4 以及 Postgres。我正在尝试使用带有数组的 PreparedStatement 来填充 SQL in 子句。但是,生成的 SQL 中似乎有“{”和“}”。这是代码:
PreparedStatement ptmt =
connection.prepareStatement("select * from foo where id in (?)");
String[] values = new String[3];
values[0] = "a";
values[1] = "b";
values[2] = "c";
ptmt.setArray(1, connection.createArrayOf("text", values));
生成的 SQL 如下所示:
select * from foo where id in ('{"a","b","c"}')
哪个,行不通。它应该是这样的:
select * from foo where id in ("a","b","c")
或者
select * from foo where id in ('a','b','c')
我在这里想念什么?