PreparedStatement.addBatch() 可以用于 SELECT 查询吗?
想象一下,我有 100 个 SELECT 查询,它们相差一个输入。“准备语句”可用于该值。
我在 Web 上看到的所有文档都是针对批量插入/更新/删除的。我从未见过用于选择语句的批处理。
这能做到吗?如果是这样,请在下面的示例代码中帮助我。
我想这可以使用“IN”子句来完成,但我更喜欢使用批处理的select语句。
示例代码:
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驱动程序编写针对IBM AS / 400 DB2数据库的查询。