Использование PreparedStatement с выполнением (вместо executeBatch) производительности - PullRequest
0 голосов
/ 20 сентября 2018

Мне нужно убедиться, что я правильно использую 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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...