Android:Sqlite插入大批量数据
16lz
2021-01-24
假如现在要向Android本地数据库中插入1万条数据。按照一般的想法代码如下:
//假设strings.size() = 10000 try { for (String data : strings) { ContentValues contentValues = new ContentValues(); if(!TextUtils.isEmpty(data)){ contentValues.put(key, data); } mDb.insert(table_name, null, contentValues); } } catch (Exception e) { e.printStackTrace(); } finally { mDb.close(); }
如上做法可能会花费大概2minute,这是因为每次插入都会创建一次事务。在看看下面这段代码:
//假设strings.size() = 10000try { mDb.beginTransaction(); for (String data : strings) { ContentValues contentValues = new ContentValues(); if(!TextUtils.isEmpty(data)){ contentValues.put(key, data); } mDb.insert(table_name, null, contentValues); } mDb.setTransactionSuccessful(); } catch (Exception e) { e.printStackTrace(); } finally { mDb.endTransaction(); mDb.close(); }
比第一段多了3行,但插入操作花费的时间只需要4s左右,这是因为我们主动开启了一个事务,所以整个插入操作实在一个事务中完成的,花费的时间也大大的减少了。
更多相关文章
- Android的常用方法(转载)
- Android(安卓)编译系统 --- 版本信息
- [JAVA] Android用到的一些文件操作
- O1--添加假对焦功能并支持对焦
- fanfou(饭否) android客户端 代码学习3
- Android开发学习笔记:Android很有用的代码片段
- android 获得当前view在屏幕的坐标
- Android(安卓)备忘录
- Android实现拍照、录像、录音代码范例