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(); 
    } 
  } 
} 
            
          
  
  |