package com.litesuits.orm.db.assit;
import android.database.sqlite.SQLiteDatabase;
import com.litesuits.orm.log.OrmLog;
/**
* 辅助事务
*
* @author mty
* @date 2013-6-15下午11:09:15
*/
public class Transaction {
private static final String TAG = Transaction.class.getSimpleName();
/**
* 因为每个具体事物都不一样,但又有相同的结构,既要维持代码的统一性,也要可以个性化解析。
*/
public static <T> T execute(SQLiteDatabase db, Worker<T> worker) {
db.beginTransaction();
OrmLog.i(TAG, "----> BeginTransaction");
T data = null;
try {
data = worker.doTransaction(db);
db.setTransactionSuccessful();
if (OrmLog.isPrint)
OrmLog.i(TAG, "----> Transaction Successful");
} catch (Exception e) {
e.printStackTrace();
} finally {
db.endTransaction();
}
return data;
}
public interface Worker<T> {
T doTransaction(SQLiteDatabase db) throws Exception;
}
}