Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.0
-
None
-
Operating System: other
Platform: Other
-
27530
Description
From commons-dev:
Adkins Kendall wrote:
Has any consideration been given to adding batch update capability?
For
instance, the following method could be added to the QueryRunner class:
/**
- Execute a batch of SQL INSERT, UPDATE, or DELETE queries.
- @param conn The connection to use to run the query.
- @param sql The SQL to execute.
- @param params An array of query replacement parameters.
- @return The number of rows updated per statement.
- @throws SQLException
*/
public int[] batchUpdate(Connection conn, String sql, Object[][]
params)
throws SQLException {
PreparedStatement stmt = null;
int[] rows = null;
try {
stmt = this.prepareStatement(conn, sql);
for(int i = 0; i < params.length; i++)
{ this.fillStatement(stmt, params[i]); stmt.addBatch(); } rows = stmt.executeBatch();
} catch (SQLException e)
finally
{ DbUtils.close(stmt); } return rows;
}
David Graham wrote:
I'm fine with adding this to query runner but executeBatch() is marked
as
@since 1.3 so we would need to bump DbUtils' minimum Java level. I
would
shorten the method name to batch() so we would have query(), update()
and
batch() and of course some test cases are needed.