- 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();
- }
- }
- }
java 批处理
最新推荐文章于 2023-03-23 09:00:26 发布