zoukankan      html  css  js  c++  java
  • Android开发中的SQLite事务处理

    https://blog.csdn.net/luckyjda/article/details/8103372

    使用SQLiteDatabase的beginTransaction()方法可以开启一个事务,程序执行到endTransaction() 方法时会检查事务的标志是否为成功,如果程序执行到endTransaction()之前调用了setTransactionSuccessful() 方法设置事务的标志为成功则提交事务,如果没有调用setTransactionSuccessful() 方法则回滚事务。事务处理应用:很多时候我们需要批量的向Sqlite中插入大量数据时,单独的使用添加方法导致应用响应缓慢, 因为sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。如初始8000条记录也就是要8000次读写磁盘操作。同时也是为了保证数据的一致性,避免出现数据缺失等情况。

    SQLiteDatabase db = dbOpenHelper.getWritableDatabase();

    //开启事务
    db.beginTransaction();
    try{
                //批量处理操作
                //do something
               db.execSQL("SQL语句", new Object[]{});
               db.execSQL("SQL语句", new Object[]{});
                //设置事务标志为成功,当结束事务时就会提交事务
                db.setTransactionSuccessful();
    }
    catch(Exception e){
     
    }
     
    finally{
               //结束事务
              db.endTransaction();
    }
    ————————————————
    版权声明:本文为CSDN博主「luckyjda」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/luckyjda/article/details/8103372

  • 相关阅读:
    内存泄露检测工具之DMalloc
    五年后你在何方
    程序员技术练级攻略
    Windows编程革命简史
    su的时候密码认证失败的解决方法
    ruby 元编程 meta programming
    内存对齐分配策略(含位域模式)
    Ruby 之 Block, Proc, Lambda 联系区别,转载
    c++异常处理机制示例及讲解
    ruby 常见问题集 1 不断更新中
  • 原文地址:https://www.cnblogs.com/CipherLab/p/13125176.html
Copyright © 2011-2022 走看看