首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PreparedStatement.addBatch()可以用于选择查询吗?

PreparedStatement.addBatch()可以用于选择查询吗?
EN

Stack Overflow用户
提问于 2018-04-16 07:20:00
回答 2查看 0关注 0票数 0

假设我有100个SELECT查询与一个输入不同,可以使用PreparedStatement作为值。

我在Web上看到的所有文档都用于批处理插入/更新/删除,我从未见过用于SELECT语句的批处理。

这能办到吗?如果是,请帮助我当下面的示例代码。

我认为这可以使用“IN”子句来完成,但我更喜欢使用批处理SELECT语句。

样本代码:

代码语言:txt
复制
public void run(Connection db_conn, List value_list) {
    String sql = "SELECT * FROM DATA_TABLE WHERE ATTR = ?";
    PreparedStatement pstmt = db_conn.prepareStatement(sql);
    for (String value: value_list) {
        pstmt.clearParameters();
        pstmt.setObject(1, value);
        pstmt.addBatch();
    }
    // What do I call here?
    int[] result_array = pstmt.executeBatch()
    while (pstmt.getMoreResults()) {
        ResultSet result_set = pstmt.getResultSet();
        // do work here
    }
}

我认为这也可能是依赖于驱动程序的行为,我正在使用它们的JDBC驱动程序编写针对IBMAS/400 DB2数据库的查询。

EN

回答 2

Stack Overflow用户

发布于 2018-04-16 15:25:02

文件:

此列表可能包含用于更新、插入或删除行的语句;也可能包含DDL语句,如CREATETABLE和DROPTABLE。但是,它不能包含生成ResultSet对象的语句,例如SELECT语句。换句话说,列表只能包含产生更新计数的语句。列表在创建时与语句对象关联,最初为空。可以使用addBatch方法向此列表添加SQL命令。

票数 0
EN

Stack Overflow用户

发布于 2018-04-16 17:04:44

AddBatch()用于‘DELETE’/‘INSERT’/‘UPDATE’语句,而不是‘SELECT’语句。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档