次のクエリを実行する方法はありますか:
select * from table where field in (?)
?
リスト/セット/配列をプレースホルダーの値として渡します。
Apache db-commons ライブラリの QueryRunner を使用しています。
確かにあり、createArrayOfを使用します。
final List<Integer> id = new ArrayList<>();
id.add(12);
id.add(15);
final Array toDelete = connection.createArrayOf("int", id.toArray());
queryRunner.query(
connection,
"SELECT * FROM table WHERE id = ANY(?)",
resultSetHandler,
toDelete
);
(例はPostgreSQLを使用していますが、他の人でも機能するはずです)