有没有办法执行以下查询:
select * from table where field in (?)
并传递一个列表/集合/数组作为值?
占位符。
我正在使用 Apache db-commons 库中的 QueryRunner。
肯定有,用创建数组 http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#createArrayOf%28java.lang.String,%20java.lang.Object%5B%5D%29:
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,但也应该适用于其他人)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)