Я стараюсь уменьшить количество обращений в моем приложении для повышения производительности. Я хочу использовать PreparedStatement
s для их множества преимуществ.
Это пример того, что я придумала .. Обобщенные детали опущены ..
Class.forName( "..Driver" );
Connection connection = DriverManager.getConnection( .. );
PreparedStatement statement = connection.prepareStatement( "UPDATE Table SET XmlData = ? WHERE SomeGUID = ?; INSERT INTO SomeTable ( Col1,Col2 ) VALUES ( ?, ? )" );
try{
statement.setString( 1, "<XmlData></XmlData>" );
statement.setString( 2, "32ABD5-438B0-.." );
statement.setString( 3, "ABC" );
statement.setString( 4, "XYZ" );
statement.execute();
connection.commit();
}
catch {
connection.rollback();
}
finally {
statement.close();
connection.close();
}
(Опять же, это не фактический код, а упрощенный пример)
В общем, я пытаюсь выполнить несколько операторов вставки / обновления в одном операторе, чтобы уменьшить трафик в оба конца. Это эффективный способ сделать это или есть более приемлемый подход?
Я мог бы иметь тысячи заявлений для одной транзакции. Скорее всего, я сегментирую оператор на блоки разумного размера, чтобы избежать тайм-аутов при выполнении одного оператора.
Я буду поддерживать несколько поставщиков БД, но буду использовать ANSI SQL, поэтому проблем не должно быть. При необходимости я могу использовать интеллект моего DAL. Так что это не проблема.
Какие-либо советы / предложения?