2011-07-04 7 views

答えて

2

できません。クエリには、セット内の各要素に対して1つのプレースホルダ(?)が必要です。そして、あなたはセットのすべての要素をバインドする必要があります。

あなたのセットが3つの要素がある場合は、あなたの準備文は次のようになります。

String sql = "select foo.* from FOO foo where foo.id in (?, ?, ?)"; 

、あなたがセットを反復処理し、個別に各要素をバインドする必要があります。

int i = 1; 
for (String s : setOfStrings) { 
    statement.setString(i, s); 
    i++; 
} 
+0

おかげさまで、JB Nizetは基本的に、Java Set = {1,2,3}をJava String = "'1'、 '2'、 '3'に変換する方法を意味します。私はそれを行う方法を知っていますが、私はそれを行うためのAPIメソッドがあるかどうか疑問に思っていました。 – Abidi

+0

私の主張は助けにならないということです。この文字列( "'1'、 '2'、 '3'")は、プリペアドステートメントの1つのパラメータとしてバインドすることはできません。 –

+0

本当ですか?私はそれをやっているし、期待どおりに動作します。 – Abidi

関連する問題