by Dinesh Thakur Category: JDBC

Network round trips (query gone for execution to database and result comes to the screen, i.e., one network roundtrip) increases while sending multiple queries as individual queries to the database. It is recommended to combine them into a single unit/batch and send that batch to database only once for execution. This is called batch processing and this reduces network round trips between Java application and the database software.

For example

If ten queries are sent to database. Instead of sending them individual for ten times by having ten network roundtrips with browser window, it is recommended to combine them into single batch and send that batch to database only for one time.


We cannot add select queries to the batch processing.

In batch processing java application sends query to database as a batch. Similarly, queries result comes back to application as a batch. All non-select queries executions give numeric results. But the select queries executions give ResultSet object. The executeBatch () method return type is int (), and it cannot store ResultSet object. So

we cannot add select queries to batch.

Batch processing does not perform transaction management on its own. But we can perform transaction management on batch processing by disabling the auto commit mode and by adding additional logics using connection.commit () , connection.rollback () methods.

Example of application batch processing

A table is created on Oracle table as shown below:

           Batch Processing in JDBC

Source code for the application:

import java.sql.*;

public class BatchProcess


         public void main (String args []) throws Exception


                 Class.forName ("oracle.jdbc.OracleDriver");

                 Connection con = DriverManager.getConnection

                 ("jdbc:oracle:thin:@localhost:1521:orcl", "scott", "tiger");

                 Statement st = con.createStatement ();

                 //three queries update ,insert, delete are added to batch

                 st.addBatch ("update student set address= ‘China’ where no=100");

                 st.addBatch ("insert into student values (109, ‘rahul’, ‘india’)");

                 st.addBatch ("delete from student where no=101");

                 int result [] = st.executeBatch ();                          

                 int sum = 0;

                 for (int i=0; i<result .length; ++i)


                       sum = sum+result [i];


                 System.out.println (sum);



Code explanation:


st.addBatch (“update student set address= ‘China’ where no=100”);

st.addBatch (“insert into student values (109, ‘rahul’, ‘india’)”);

st.addBatch (“delete from student where no=101”);


In the above statements three different queries are added to a batch.

int result[] = st.executeBatch ();

In this code execution an operation is performed and the result, whose return type is integer, is stored in an array.

The program in the next page shows the number of operations that are done. Data in the database table after the execution of the program.

About Dinesh Thakur

Dinesh ThakurDinesh Thakur holds an B.SC (Computer Science), MCSE, MCDBA, CCNA, CCNP, A+, SCJP certifications. Dinesh authors the hugely popular blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps. For any type of query or something that you think is missing, please feel free to Contact us.

Search Content