0

prepared statement数字のグループを一度に入力したいと思います。これが私が試していることです

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

ただし、これは最初の人(人2)だけを返します。これは b/cINパラメータ内の文字列を送信しています。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 に答える