Java examples for JDBC:Transaction
Savepoints in a Transaction
import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Savepoint; import java.sql.Statement; public class Main { public static void main(String[] args) { Connection conn = null;/*w w w .j a v a2s. co m*/ try { conn = JDBCUtil.getConnection(); conn.setAutoCommit(false); String SQL = "update person " + "set income = ? " + "where person_id = ?"; PreparedStatement pstmt = conn.prepareStatement(SQL); pstmt.setDouble(1, 20000); pstmt.setInt(2, 101); pstmt.execute(); Savepoint sp1 = conn.setSavepoint(); pstmt.setDouble(1, 25000); pstmt.execute(); Savepoint sp2 = conn.setSavepoint(); conn.rollback(sp1); JDBCUtil.commit(conn); } catch (SQLException e) { System.out.println(e.getMessage()); JDBCUtil.rollback(conn); } finally { JDBCUtil.closeConnection(conn); } } } class JDBCUtil { public static Connection getConnection() throws SQLException { // Register the Java DB embedded JDBC driver Driver derbyEmbeddedDriver = null;// new // org.apache.derby.jdbc.EmbeddedDriver(); DriverManager.registerDriver(derbyEmbeddedDriver); // Construct the connection URL String dbURL = "jdbc:derby:beginningJavaDB;create=true;"; String userId = "root"; String password = "password"; // Get a connection Connection conn = DriverManager.getConnection(dbURL, userId, password); // Set the auto-commit off conn.setAutoCommit(false); return conn; } public static void closeConnection(Connection conn) { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void closeStatement(Statement stmt) { try { if (stmt != null) { stmt.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void closeResultSet(ResultSet rs) { try { if (rs != null) { rs.close(); } } catch (SQLException e) { e.printStackTrace(); } } public static void commit(Connection conn) { try { if (conn != null) { conn.commit(); } } catch (SQLException e) { e.printStackTrace(); } } public static void rollback(Connection conn) { try { if (conn != null) { conn.rollback(); } } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { Connection conn = null; try { conn = getConnection(); System.out.println("Connetced to the database."); } catch (SQLException e) { e.printStackTrace(); } finally { closeConnection(conn); } } }