在准备好的声明中输入一组数字

时间:2013-04-02 22:11:04

标签: java sql jdbc

我想一次将一组数字输入prepared statement。这是我正在尝试的

String parameters = "2,6,9";
preparedStatement = connection.prepareStatement("SELECT * FROM user WHERE id IN (?)");
preparedStatement.setString(1, parameters);

然而,这只会让我回到第一个人(第2个人)。这是b / c我在IN参数中发送一个字符串。将preparedStatement.toString()打印到控制台时,发送到数据库的结果为

SELECT * FROM user WHERE id IN ('2,6,9')

所以我的问题是周围的蜱,我需要以某种方式把它们拿出来。有什么想法吗?

Ps:我知道我可以用逗号分割字符串并沿着那条路走下去,因为我已经实现了它。但是,如果可能的话,我想避免这种情况。寻找更好的方式。

1 个答案:

答案 0 :(得分:1)

尝试设置所有值:

PreparedStatement stmt = conn.prepareStatement(
    "select id, name from users where id in (?, ?, ?)");
stmt.setInt(1);
stmt.setInt(2);
stmt.setInt(3);

注意:这是来自此javaranch中的question页面上的示例。