Mega Code Archive

 
Categories / Java / Database SQL JDBC
 

Demo Prepared Statement Add Batch MySQL

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