java - 如何将 List/Set/Array 作为参数值传递给 Apache QueryRunner?

标签 java jdbc

有什么方法可以执行以下查询:

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/

相关文章:

java - 如何在 Java 中使用 Httpunit 发送多部分请求

java - 如何获取即将到来的特定时间的java.time.LocalDateTime对象?

使用 Socks 的 Java JDBC 连接

Java JDBC 向数据库添加自动值

JAVA-EE7/javax.ws.rs : Injection of EJB in REST-Resource

java - 遍历java中的二维数组

java - Vertx JDBC 的底层工作原理

java - 如何使用 JDBCTemplate 向外键插入空值

Java Android异常,错误内容必须有一个id为android.R.id.list的ListView。机器人 :id="@android:id/list Does Not fix Issue

sql - 使用jdbc River将多个表从MySQL索引到elasticsearch