Я использую шаблон JDBC и хочу читать из базы данных, используя подготовленные операторы. Я перебираю множество строк в файле .csv и в каждой строке выполняю несколько запросов на выборку SQL с соответствующими значениями.
Я хочу ускорить чтение из базы данных, но не знаю, как заставить шаблон JDBC работать с подготовленными операторами.
Существует PreparedStatementCreator и PreparedStatementSetter. Как и в этом примере, оба они созданы с анонимными внутренними классами. Но внутри класса PreparedStatementSetter у меня нет доступа к значениям, которые я хочу установить в подготовленном операторе.
Поскольку я просматриваю файл .csv, я не могу жестко закодировать их как String, потому что я их не знаю. Я также не могу передать их PreparedStatementSetter, потому что для конструктора нет аргументов. И установить мои значения на final тоже было бы глупо.
Я привык к тому, что создание заранее подготовленных заявлений было довольно простым. Что-то типа
PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate():
как в этом руководстве по Java.