我正在尋求減少應用程序中的往返以提高性能。我想用PreparedStatement
來獲得衆多好處。SQL:綁定變量的批處理語句
這是我想出..全身用省略的細節的例子..
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的智能。所以,這是一個非問題。
任何提示/建議?