[Android Studio] トランザクションとは?

どうも、tatsuです!

今日は、トランザクションとは何なのかを説明します。

※この記事で使用しているAndroid Studioのバージョンは2.3.3です。

トランザクションとは?

一言でいうと「一連の処理をまとめたもの」です。
例えば、以下の一連の処理を行いたい場合を想定します。

1. INSERT
2. INSERT
3. UPDATE
4. DELETE
トランザクションを使わなくてもこれらの処理を行うことは可能です。
ですが、もし3終了後に例外が発生した場合どうなるでしょうか?
1-3までは確定され、4が行われない状態のままになってしまうのがわかるかと思います。
このように、中途半端な状態になってしまうのはよくありません。
一連の流れを行う場合は、「全部成功」or「途中で失敗したら全部戻す」が正しい挙動になります。
そこでこの一連の流れをトランザクションでまとめてあげることで、上記の挙動を実現することができます。

トランザクション処理の例

トランザクション処理は以下のような構成で記述します。
SQLiteOpenHelperクラス内のonCreateメソッドを例にしています。


    public void onCreate(SQLiteDatabase db) {
        // トランザクションを開始する
        db.beginTransaction();
        try{
            // INSERT
            // INSERT
            // UPDATE
            // DELETE
            
            // 全ての処理が成功したら成功フラグを立てる
            db.setTransactionSuccessful();
        }finally {
            // トランザクションを終了する
            // setTransactionSuccessful()が呼ばれていれば確定し、呼ばれていなければ全処理をキャンセルする
            db.endTransaction();
        }
    }

このように一連の処理を行う場合はトランザクションを使用することを推奨します。
他の記事でトランザクションを使用する箇所があると思いますので、構文を覚えておいてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です