数据库事务

批量操作需要使用事务以节省时间

同一类型的数据库操作, 每一次操作都去打开关闭数据库会比较耗时, 此时使用事务的方式去操作数据库, 会将操作暂时缓存起来, 在最后执行时只需要打开一次数据库, 会大大的减少操作时间

新建一个列表存操作

存入操作

一个 ContentProviderOperation 代表一个插入操作

ContentProviderOperation 的方法

静态方法:(返回ContentProviderOperation.Builder对象)

  • newDelete(Uri uri)
  • newInsert(Uri uri)
  • newUpdate(Uri uri)
  • newAssertQuery(Uri uri)
ContentProviderOperation.Builder 的方法
  • withSelection(String selection, String[] selectionArgs)
  • withValueBackReference(String key, int previousResult)

    批量操作列表中第 previousResult 个操作的返回值作为该 key 的值 (适用 insert, update, or assert)

  • withValue(String key, Object value)

    A value to insert or update

  • withYieldAllowed(boolean yieldAllowed)

    是否允许其它事务同时操作数据库

  • build() 末尾调用返回 ContentProviderOperation 对象, 存入列表

执行操作

getContentResolver().applyBatch(String authority, ArrayList operations)

第一个参数实现事务的Provider的authority属性

第二种方法(只记录, 未验证)

0 Comments
Leave a Reply