0

我想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:我知道我可以用逗号分割字符串并沿着这条路走,因为我已经实现了它。但是,如果可能的话,我想避免这种情况。寻找更好的方法。

4

1 回答 1

1

尝试设置所有值:

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

注意:这是来自此问题中给出的javaranch页面上的示例。

于 2013-04-02T22:18:41.023 回答