Представьте, что у меня есть 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.