Androidx学习笔记(21)-- SQLite 事务

前端之家收集整理的这篇文章主要介绍了Androidx学习笔记(21)-- SQLite 事务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

事务

保证所有sql语句要么一起成功,要么一起失败
  • 保证多条sql语句要么同时成功,要么同时失败
  • 最常见案例:银行转账
  • 事务api

try {
    //开启事务
    db.beginTransaction();
    ...........
    //设置事务执行成功
    db.setTransactionSuccessful();
} finally{
    //关闭事务
    //如果此时已经设置事务执行成功,则sql语句生效,否则不生效
    db.endTransaction();
}

测试代码

	public void transaction(){
		try{
			//开启事务
			db.beginTransaction();
			ContentValues values = new ContentValues();
			values.put("salary",12000);
			db.update("person",values,"name = ?",new String[]{"小志"});
			
            //因为后面用的也是同一个values, 会导致第二次调用的时候 会携带第一次的数据   此时最好清空下数据
			values.clear();
			values.put("salary",16000);
			db.update("person",new String[]{"小志的儿子"});
			
			//int i = 3/0;    //检测失败
			//设置  事务执行成功
			db.setTransactionSuccessful();
		}
		finally{
			//关闭事务,同时提交,如果已经设置事务执行成功,那么sql语句就生效了,反之,sql语句回滚
			db.endTransaction();
		}
	}

猜你在找的Sqlite相关文章