본문 바로가기

Android

[Android] SQLiteDatabase 트랜잭션 사용법

데이터베이스에서 트랜잭션이란?

mommoo.tistory.com/62

 

트랜잭션(Transaction)이란?

트랜잭션이란? 트랜잭션(Transaction 이하 트랜잭션)이란, 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위를 뜻한다. 데이터베이스의 상태를 변화시킨다는 것은 무얼 의미하는 것일

mommoo.tistory.com

코드

순수 SQLite

private SQLiteDatabase db;

...

try {
      db.beginTransaction();
      
      [SELECT, INSERT, UPDATE, DELETE 등 다양한 query 활동]

      // 중요!! 호출해주지 않으면 데이터베이스에 반영이 되지 않음
      db.setTransactionSuccessful();
} catch (Exception e) {
      e.printStackTrace();
} finally {
      db.endTransaction();
}

Room 라이브러리

 @Dao
 public abstract class ProductDao {
     @Insert
     public abstract void insert(Product product);
     @Delete
     public abstract void delete(Product product);
     @Transaction
     public void insertAndDeleteInTransaction(Product newProduct, Product oldProduct) {
         // Anything inside this method runs in a single transaction.
         insert(newProduct);
         delete(oldProduct);
     }
 }