Batching

Batching allows you to gather multiple SQL statements for the same PreparedStatement into a batch. The statements in that batch are in turn sent to the database together instead of sent one statement at a time. This reduces the consumption of network bandwidth by eliminating the overhead of redundant packet headers in small packets. Instead, the statements are transmitted in one or more larger packets. Batching also eliminates the extra data required by Oracle to packetize and unpacketize the sent data.

There are two forms of batching available: the JDBC 2.0 standard model and the Oracle proprietary model. You’ll want to use the standard implementation if you are concerned with portability, and use Oracle’s implementation if you want to get the best performance, but you cannot mix the two batching formats. If you do, you’ll get a SQLException.

Warning

Oracle supports batching only for prepared statements. Although it does provide the methods for batching statements and callable statements, it does not actually support batching for them. So if you want to receive any benefit from batching, you must use prepared statements.

Standard Batching Implementation

Taking a look at the big picture, standard batching works as follows. First, you turn off auto-commit and create a prepared statement. Next, you set column values as necessary. Then, instead of calling the executeUpdate( ) method to send the SQL statement to the database immediately, call the addBatch( ) method to add a SQL ...

Get Java Programming with Oracle JDBC now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.