java 批处理
来源:互联网 发布:电信4g网络覆盖 编辑:程序博客网 时间:2024/06/06 05:58
- 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 staticvoid 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 staticvoid 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();
- }
- }
- }