Мне нужно убедиться, что я правильно использую PreparedStatement.
Допустим, у меня есть такой код (очень упрощенный)
Версия 1:
Если я правильно понимаю PreparedStatements - это должно быть наиболее эффективным способомвыполнить один и тот же запрос SQL с различными параметрами много раз.Я предполагаю, что ps
отправляется на сервер только один раз, а когда я звоню someMethod()
много раз - это должно быть намного быстрее, чем Версия 2.
private PreparedStatement ps = null;
public void main() {
for (i = 0, i < 1000, i++) {
someMethod(i);
// cant use executeBatch in this case, because I need to
doManyOtherThingsIncludingSelectingRowInsertedAbove();
}
}
public void someMethod(int x){
if (ps == null) ps = conn.createPreparedStatement(sql);
ps.setInt(1, x);
ps.execute();
// ...
}
Версия 2: ЕслиЯ правильно понимаю PreparedStatements - это правильно, но версия 1. должна быть намного быстрее.
public void main() {
for (i = 0, i < 1000, i++) {
someMethod(i);
// cant use executeBatch in this case, because I need to
doManyOtherThingsIncludingSelectingRowInsertedAbove();
}
}
public void someMethod(int x){
PreparedStatement ps = conn.createPreparedStatement(sql);
ps.setInt(1, x);
ps.execute();
// ...
}
Мой вопрос:
Может ли PreparedStatement многократно использоваться многократно улучшить производительность с помощью execute (неexecuteBatch)