这次我们来谈谈如何在 Android 中使用 SQLite 的事务,如果对 SQLite 事务不了解的朋友可以看看我的博客SQLite 高级语法介绍。
有了解 SQLite 事务的朋友都知道事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。
事务使用,可以提供一个机制,防止在执行过程中出错而之前正确的sql有影响了数据库的情况出现。所以这对我们对数据库做批量操作是很有用的,如果我们不设置事务,每一条 SQL 语句的执行都会默认开启一个事务,这影响了我们的效率。
使用事务并不是很复杂:
beginTransaction() //开启事务
setTransactionSuccessful() //设置提交事务
endTransaction() //关闭事务
我们需要 MySqliteHelper 和 Constant 这两个类,用来创建数据库。
MySQLiteHelper.java:
public class MySqliteHelper extends SQLiteOpenHelper {
public MySqliteHelper(Context context) {
super(context, Constant.DATABASE_NAME, null, Constant.DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i("TAG", "-------onCreate--------");
String sql = "create table " + Constant.TABLE_NAME + " ("