Commit or rollback transaction in JDBC : Transation « Database « Java Tutorial






import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Main {
  public static void main(String[] args) throws Exception {
    String url = "jdbc:mysql://localhost/testdb";
    String username = "root";
    String password = "";
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = null;
    try {
      conn = DriverManager.getConnection(url, username, password);
      conn.setAutoCommit(false);

      Statement st = conn.createStatement();
      st.execute("INSERT INTO orders (username, order_date) VALUES ('java', '2007-12-13')",
          Statement.RETURN_GENERATED_KEYS);

      ResultSet keys = st.getGeneratedKeys();
      int id = 1;
      while (keys.next()) {
        id = keys.getInt(1);
      }
      PreparedStatement pst = conn.prepareStatement("INSERT INTO order_details (order_id, product_id, quantity, price) VALUES (?, ?, ?, ?)");
      pst.setInt(1, id);
      pst.setString(2, "1");
      pst.setInt(3, 10);
      pst.setDouble(4, 100);
      pst.execute();

      conn.commit();
      System.out.println("Transaction commit...");
    } catch (SQLException e) {
      if (conn != null) {
        conn.rollback();
        System.out.println("Connection rollback...");
      }
      e.printStackTrace();
    } finally {
      if (conn != null && !conn.isClosed()) {
        conn.close();
      }
    }
  }
}








20.32.Transation
20.32.1.JDBC Transaction Isolation Levels
20.32.2.Transaction Isolation Level supported
20.32.3.Determine if a Database Supports Transactions
20.32.4.Turning On Autocommit Mode
20.32.5.Roll Back a Transaction
20.32.6.Using a Transaction in JDBC with Exception catching
20.32.7.Rollback to savepoint
20.32.8.Using a database transaction with JDBC
20.32.9.Determining If a Database Supports Transactions
20.32.10.Committing and Rolling Back Updates to a Database
20.32.11.Disable auto commit mode in JDBC
20.32.12.If database support transaction
20.32.13.Commit or rollback transaction in JDBC