トランザクションとは
プログラムからデータベースに送信する1つ以上のSQL文の要求を 1つのグループとして扱う考え方
##データベースのトランザクション制御 同一トランザクションに属するSQL文の処理要求が複数ある場合、 - 全てが成功して初めて処理結果を確定する(コミット) - 途中で失敗したら、トランザクション実行前の状態に戻す(ロールバック)
package sample; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void main(String[] args) { //JDBCドライバのロード(h2データベース) try { Class.forName("org.h2.Driver"); } catch (ClassNotFoundException e) { throw new IllegalStateException("ドライバのロードに失敗しました"); } //java.sql.connectionのインスタンスを取得 Connection con = null; try { //DBへの接続 con = DriverManager.getConnection("jdbc:h2:~/mydb", "sa", ""); //自動コミットモードの解除。これを行わないとSQL文が一つ送信される度に自動的にコミットされる con.setAutoCommit(false); //送信済の処理要求の確定 con.commit(); } catch (SQLException e) { try { //送信済みの処理要求のキャンセル(ロールバック) con.rollback(); } catch (Exception e2) { e2.printStackTrace(); } } finally { //DB接続の切断 if (con != null) { try { con.close(); } catch (Exception e3) { e3.printStackTrace(); } } } } }