Java JDBC Batch Update Example with PreparedStatement


In this Tutorial, we will take a look at how to do Batch Update using Java JDBC PreparedStatement,

Table: students
CREATE TABLE `students` (
  `student_id` int NOT NULL AUTO_INCREMENT,
  `student_name` varchar(45) NOT NULL,
  `student_dob` datetime NOT NULL,
  `student_address` varchar(45) NOT NULL,
  PRIMARY KEY (`student_id`);

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.time.LocalDate;


Java Code Example:
public class JDBCBatchUpdateExample {
    
    public static void main(String[] args) throws ClassNotFoundException, SQLException {

        String url ="jdbc:mysql://localhost:3306/my_uat";
        String userName="root";
        String password ="root123";
        String batchInsertQuery ="insert into students values(?,?,?,?)";
        Connection connection = DriverManager.getConnection(url,userName,password);
        PreparedStatement preparedStatement = connection.prepareStatement(batchInsertQuery);

        preparedStatement.setObject(1, null);
        preparedStatement.setObject(2, "Harry");
        preparedStatement.setObject(3, LocalDate.of(1997, 01, 03));
        preparedStatement.setObject(4, "London");
        preparedStatement.addBatch();

        preparedStatement.setObject(1, null);
        preparedStatement.setObject(2, "Ron");
        preparedStatement.setObject(3, LocalDate.of(1999, 03, 19));
        preparedStatement.setObject(4, "Paris");
        preparedStatement.addBatch();

        preparedStatement.setObject(1, null);
        preparedStatement.setObject(2, "Hermione");
        preparedStatement.setObject(3, LocalDate.of(1995, 02, 14));
        preparedStatement.setObject(4, "Paris");
        preparedStatement.addBatch();
        
        int[] resultSet = preparedStatement.executeBatch();

        for(int result: resultSet) {
            System.out.println("Result: " +result);
        }
    
    }
}

Make sure to add the records to the batch or else nothing will get executed.

Also a common mistake if you do preparedstatement.addBatch() at the end of each record only the last record will get written.

Result:
Java JDBC Batch Update Example
Java JDBC Batch Update Example

Facing issues? Have Questions? Post them here! I am happy to answer!

Author Info:

Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.

Follow him on: X

You can also reach out to him via e-mail: rakesh@code2care.org

Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap