Android数据库批量操作
来源:互联网 发布:腾讯传奇霸业羽毛数据 编辑:程序博客网 时间:2024/06/06 07:31
Android 数据库批量操作
为了方便数据库的批量更新、删除、插入操作,android系统引入了ContentProviderOperation类。
使用这个类具有以下优点:
1.数据完整性,即所有的操作都在一个事务中执行。
2.由于批量操作在一个事务中执行,只需要打开和关闭一个事务,比多次开关性能要好
3.相比单次操作,批量操作可以提升应用的性能,并且减少占用CPU的时间,减少电量的消耗。
创建ContentProviderOperation对象,则需要使用ContentProviderOperation.Builder类,通过调用以下静态函数获取Builder对象:
newInsert() 创建一个用于执行插入操作的Builder
newUpdate() 创建一个用于执行更新操作的Builder
newDelete() 创建一个用于执行删除操作的Builder
示例操作:
ArrayList<ContentProviderOperation> ops = new ArrayList<>();ContentResolver resolver = context.getContentResolver();try { //数据进行批量操作 for(int i = 0;i < list.size();i++){ ContentValues values = new ContentValues(); values.clear(); values.put(ContentManagerContract.BookOodCards.BOOK_ID, Integer.parseInt(list.get(i).getBook_id())); values.put(ContentManagerContract.BookOodCards.OOD_CARD_ID, id); values.put(ContentManagerContract.BookOodCards.TYPE, CollectType.get(i)); ops.add(ContentProviderOperation.newInsert(ContentManagerContract.BookOodCards.CONTENT_URI).withValues(values).build()); } if (ops.size() > 0) { //CONTENT_AUTHORITY:数据库的创建路径 resolver.applyBatch(CONTENT_AUTHORITY, ops); ops.clear(); }} catch (Exception e) { e.printStackTrace(); Log.d(TAG, "insertTpIntoOpsList: Exception !!!");}
Builder设计模式,Builder对象核心函数
withSelection(String selection, String[] selectionArgs)
指定需要操作的数据条件,只在更新、删除操作中有用
withValue(String key, Object values)
定义一列的数据值,只在更新、插入数据有用
withValues(ContentValues values)
定义多列的数据值,只在更新、插入数据有用
withYieldAllowed(boolean)
withValueBackReference(String key, int previousResult)
- Android数据库批量操作
- android数据库 批量 事务 操作
- Android sqlite3 数据库批量操作
- android数据库 批量 事务 操作
- android数据库 批量 事务 操作
- Android 数据库批量操作_ContentProviderOperations
- Android数据库操作之--批量插入
- Android数据库批量操作的性能优化
- Android 数据库批量查询数据的操作
- JAVA批量操作数据库
- 数据库批量操作
- sql数据库批量操作
- mybaits批量操作数据库
- Java批量操作数据库
- 数据库表批量操作
- java 批量操作数据库
- 数据库中的批量操作
- occi批量操作数据库示例
- Qrcode生成二维码工具类
- string::assign函数
- widows系统中JDK配置
- win10下微软office2010卸载
- 我的Laravel学习之路之模板继承
- Android数据库批量操作
- solr no servers hosting shard 503 SolrCloud分布式检索时忽略宕机的Shard
- linux 环境变量设置(临时 + 永久)
- JAVA提高篇(34)-- Java多线程的同步与死锁
- JSON字符串和java对象的互转
- 图片接口回调
- Java中,逻辑与& 和短路与&& 的区别
- 数据库加密之Xcode9.0后,sqlcipher加密:Implicit declaration of function ’sqlite3_key‘is invalid in C99问题
- Java对象的创建、访问和定位