将Set<String>
转换为Oracle in (?)
的参数的最简单方法是什么?我已经在使用PreparedStatement了。
答案 0 :(得分:2)
你做不到。查询必须为集合中的每个元素都有一个占位符(?
)。而且你必须绑定集合中的每个元素:
如果您的集合包含三个元素,则您准备好的语句必须如下所示:
String sql = "select foo.* from FOO foo where foo.id in (?, ?, ?)";
并且您必须遍历该集并单独绑定每个元素:
int i = 1;
for (String s : setOfStrings) {
statement.setString(i, s);
i++;
}