Можно ли использовать PreparedStatement.addBatch () для запросов SELECT?

Представьте, что у меня есть 100 запросов SELECT, которые отличаются одним вводом. Для значения можно использовать PreparedStatement.

Вся документация, которую я вижу в Интернете, предназначена для пакетной вставки / обновления / удаления. Я никогда не видел пакетов, используемых для операторов выбора.

Можно ли это сделать? Если да, пожалуйста, помогите мне, когда приведен ниже образец кода.

Я полагаю, что это можно сделать с помощью предложения IN, но я бы предпочел использовать операторы пакетного выбора.

Пример кода:

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
    }
}

Я полагаю, это также может зависеть от драйвера. Я пишу запросы к базе данных IBM AS / 400 DB2, используя их драйвер JDBC.

22
задан dimo414 8 January 2014 в 06:29
поделиться

2 ответа

См. Учебное пособие по Java :

Этот список может содержать инструкции для обновления, вставки или удаления строки; и он также может содержать операторы DDL, такие как CREATE TABLE и DROP TABLE. Однако он не может содержать инструкцию, которая создаст объект ResultSet, например инструкцию SELECT. Другими словами, список может содержать только операторы, которые производят счетчик обновлений.

Список, связанный с объектом Statement при его создании, изначально пуст. Вы можете добавить команды SQL в этот список с помощью метода addBatch.

47
ответ дан 29 November 2019 в 03:47
поделиться

AddBatch () предназначен для операторов «delete» / «insert» / «update», а не для операторов «select».

3
ответ дан 29 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: