|  import java.sql.BatchUpdateException;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.PreparedStatement;
 import java.sql.Statement;
 
 public class DemoPreparedStatementAddBatchMySQL {
 
 public static Connection getConnection() throws Exception {
 String driver = "org.gjt.mm.mysql.Driver";
 String url = "jdbc:mysql://localhost/databaseName";
 String username = "root";
 String password = "root";
 Class.forName(driver);
 Connection conn = DriverManager.getConnection(url, username, password);
 return conn;
 }
 
 public static void checkUpdateCounts(int[] updateCounts) {
 for (int i = 0; i < updateCounts.length; i++) {
 if (updateCounts[i] >= 0) {
 System.out.println("Successfully executed; updateCount=" + updateCounts[i]);
 } else if (updateCounts[i] == Statement.SUCCESS_NO_INFO) {
 System.out.println("Successfully executed; updateCount=Statement.SUCCESS_NO_INFO");
 } else if (updateCounts[i] == Statement.EXECUTE_FAILED) {
 System.out.println("Failed to execute; updateCount=Statement.EXECUTE_FAILED");
 }
 }
 }
 
 public static void main(String[] args)throws Exception {
 Connection conn = null;
 PreparedStatement pstmt = null;
 try {
 conn = getConnection();
 conn.setAutoCommit(false);
 String query = "insert into add_batch_table(stringCol, intCol) values(?, ?)";
 pstmt = conn.prepareStatement(query);
 pstmt.setString(1, "1");
 pstmt.setInt(2, 100);
 pstmt.addBatch();
 
 pstmt.setString(1, "2");
 pstmt.setInt(2, 200);
 pstmt.addBatch();
 
 pstmt.setString(1, "3");
 pstmt.setInt(2, 300);
 pstmt.addBatch();
 
 int[] updateCounts = pstmt.executeBatch();
 checkUpdateCounts(updateCounts);
 conn.commit();
 } catch (BatchUpdateException e) {
 int[] updateCounts = e.getUpdateCounts();
 checkUpdateCounts(updateCounts);
 try {
 conn.rollback();
 } catch (Exception e2) {
 e.printStackTrace();
 }
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 pstmt.close();
 conn.close();
 }
 }
 }
 
 
 
 |