JDBC批量处理示例
如何使用JDBC进行批处理。
BatchExample.java:
package com.examples; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.util.Arrays; public class BatchExample { public static void main(String[] args) { try (Connection connection = DBConnection.getConnection()) { connection.setAutoCommit(false); try (PreparedStatement pstmt = connection.prepareStatement("Insert into txn_tbl (txn_id,txn_amount, card_number, terminal_id) values (null,?,?,?)");) { pstmt.setString(1, "123.45"); pstmt.setLong(2, 2345678912365L); pstmt.setLong(3, 1234567L); pstmt.addBatch(); pstmt.setString(1, "456.00"); pstmt.setLong(2, 567512198454L); pstmt.setLong(3, 1245455L); pstmt.addBatch(); pstmt.setString(1, "7859.02"); pstmt.setLong(2, 659856423145L); pstmt.setLong(3, 5464845L); pstmt.addBatch(); int[] arr = pstmt.executeBatch(); System.out.println(Arrays.toString(arr)); connection.commit(); } catch (SQLException e) { e.printStackTrace(); connection.rollback(); } } catch (Exception e) { e.printStackTrace(); } } }DBConnection.java:
package com.examples; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBConnection { public static Connection getConnection() throws SQLException, ClassNotFoundException { Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/jcg?rewriteBatchedStatements=true", "root", "toor"); return connection; } }
</em>