Представьте, что у меня есть 100 запросов SELECT, которые отличаются на один вход. Для значения может использоваться PreparedStatement.
Вся документация, которую я вижу в Интернете, предназначена для пакетной вставки/обновления/удаления. Я никогда не видел партий, используемых для операторов select.
Можно ли это сделать? Если да, пожалуйста, помогите мне, когда ниже пример кода.
Я предполагаю, что это можно сделать с помощью предложения "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 } }
Я полагаю, это может быть также зависящим от водителя поведением. Я пишу запросы к базе данных IBM AS/400 DB2, используя их драйвер JDBC.