JDBC 3章 トランザクション処理
3.2. その他のトランザクション実行方法
前節以外の方法で、トランザクションを実行する方法もあります。SQL文でトランザクションを形成する方法です。以下はその例です。前節の8行目以降を置き換えて読んでください。
Statement statement=connection.createStatement(); String sql="begin;"; sql+="insert into product values(101,'Viz','compact car',100);"; sql+="update product set price=price*0.9 where price>=300;"; sql+="delete from product where p_num='111';"; sql+="commit;"; statement.executeUpdate(sql); } }
SQL文でトランザクションを形成し(10〜14行目)、最後に実行しています(15行目)。この方法は、コネクションが「自動コミットモード」かどうかに影響されません。また「java.sql.PreparedStatement」を利用する事もできますので、高速化をはかる事もできます。
ただこの方法では、トランザクションの途中経過を確認しつつ処理を実行していくという事ができません。したがって常に発行されるトランザクションが決まりきっているような場合に利用するのが適当でしょう。
(実習課題2)
以下のプログラムを作成しなさい。
- 「product」テーブルに複数データを挿入するコンソールプログラム。
- データの挿入はトランザクションで実行する事。
- 以下の4通りでプログラムを形成し、実行速度を比較する事。
- 1節の方法で、「java.sql.Statement」を利用する方法
- 2節の方法で、「java.sql.Statement」を利用する方法
- 1節の方法で、「java.sql.PreparedStatement」を利用する方法
- 「java.sql.PreparedStatement」で「addBatch」を利用する方法