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数据库的查询。