有什么方法可以执行以下查询:
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,但也适用于其他人)
关于java - 如何将 List/Set/Array 作为参数值传递给 Apache QueryRunner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033628/