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; publicclass DemoPreparedStatementAddBatchMySQL { publicstatic 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; } publicstaticvoid checkUpdateCounts(int[] updateCounts) { for (int i = 0; i < updateCounts.length; i++) { if (updateCounts[i] >= 0) { System.out.println("Successfully executed; updateCount=" + updateCounts[i]); } elseif (updateCounts[i] == Statement.SUCCESS_NO_INFO) { System.out.println("Successfully executed; updateCount=Statement.SUCCESS_NO_INFO"); } elseif (updateCounts[i] == Statement.EXECUTE_FAILED) { System.out.println("Failed to execute; updateCount=Statement.EXECUTE_FAILED"); } } } publicstaticvoid 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(); } } }
Related examples in the same category