Here is a typical sequence of steps to use Batch Processing with Statment Object:
Create a Statement object using either createStatement() methods.
Set auto-commit to false using setAutoCommit().
Add as many as SQL statements you like into batch using addBatch() method on created statement object.
Execute all the SQL statements using executeBatch() method on created statement object.
Finally, commit all the changes using commit() method.
This sample code was written based on the environment and database setup done in previous chapters.
Copy and paste below code in example.java, compile and run:
// Import required packages import java.sql.*; public class example { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Database credentials static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ // Register JDBC driver Class.forName("com.mysql.jdbc.Driver"); // Open a connection System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // Create statement System.out.println("Creating statement..."); stmt = conn.createStatement(); // Set auto-commit to false conn.setAutoCommit(false); // First, let us select all the records and display them. printRows( stmt ); // Create SQL statement String SQL = "INSERT INTO Friends (id, first, last, age) " + "VALUES(200,'Zia', 'Lomela', 30)"; // Add above SQL statement in the batch. stmt.addBatch(SQL); // Create one more SQL statement SQL = "INSERT INTO Friends (id, first, last, age) " + "VALUES(201,'Raj', 'Kumar', 35)"; // Add above SQL statement in the batch. stmt.addBatch(SQL); // Create one more SQL statement SQL = "UPDATE Friends SET age = 35 " + "WHERE id = 100"; // Add above SQL statement in the batch. stmt.addBatch(SQL); // Create an int[] to hold returned values int[] count = stmt.executeBatch(); //Explicitly commit statements to apply changes conn.commit(); // Again, let us select all the records and display them. printRows( stmt ); // Clean-up environment stmt.close(); conn.close(); }catch(SQLException se){ //Handle errors for JDBC se.printStackTrace(); }catch(Exception e){ //Handle errors for Class.forName e.printStackTrace(); }finally{ //finally block used to close resources try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ }// nothing we can do try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); }//end finally try }//end try System.out.println("Have A Nice Day"); }//end main public static void printRows(Statement stmt) throws SQLException{ System.out.println("Displaying available rows..."); // Let us select all the records and display them. String sql = "SELECT id, first, last, age FROM Friends"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ //Retrieve by column name int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Display values System.out.print("ID: " + id); System.out.print(", Age: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } System.out.println(); rs.close(); }//end printRows() }//end example
Now compile above example:
C:\>javac example.java C:\>
C:\>java example Connecting to database... Creating statement... Displaying available rows... ID: 95, Age: 20, First: Sima, Last: Chug ID: 100, Age: 21, First: Sophia, Last: Lomela ID: 101, Age: 23, First: Katrina, Last: Kane ID: 102, Age: 24, First: Guru, Last: Morkel ID: 103, Age: 24, First: Simone, Last: Washer ID: 110, Age: 20, First: Sima, Last: Chug Displaying available rows... ID: 95, Age: 20, First: Sima, Last: Chug ID: 100, Age: 35, First: Sophia, Last: Lomela ID: 101, Age: 23, First: Katrina, Last: Kane ID: 102, Age: 24, First: Guru, Last: Morkel ID: 103, Age: 24, First: Simone, Last: Washer ID: 110, Age: 20, First: Sima, Last: Chug ID: 200, Age: 24, First: Zia, Last: Lomela ID: 201, Age: 35, First: Raj, Last: Kumar Have A Nice Day C:\>
Your Query was successfully sent!