将Java Set转换为PreparedStatement setString方法的参数

时间:2011-07-04 10:05:39

标签: java jdbc set

Set<String>转换为Oracle in (?)的参数的最简单方法是什么?我已经在使用PreparedStatement了。

1 个答案:

答案 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++;
}