Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将大量数据插入sqlite数据库_Java_Android_Database_Sqlite_Android Database - Fatal编程技术网

Java 将大量数据插入sqlite数据库

Java 将大量数据插入sqlite数据库,java,android,database,sqlite,android-database,Java,Android,Database,Sqlite,Android Database,我正在关注这个链接 但它使用“ContentValues”将数据插入数据库 ContentValues values = new ContentValues(); values.put(KEY_NAME, contact.getName()); // Contact Name values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone`.. 但我有654个项目要插入因此,我需要将这些行写654次。是否有其他方法可以做

我正在关注这个链接

但它使用“ContentValues”将数据插入数据库

 ContentValues values = new ContentValues();
 values.put(KEY_NAME, contact.getName()); // Contact Name
 values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone`..
但我有654个项目要插入
因此,我需要将这些行写654次。是否有其他方法可以做到这一点…

我建议您使用

阅读更多信息和示例

正如作者保证的那样:

用DatabaseUtils.InsertHelper替换SQLiteDatabase.insert后,数据库插入速度从大约每秒95行提高到大约每秒525行

像这样试试
为名称和编号创建2个Arraylist。使用for循环添加所有名称和数字 像这样

 arralistname.add(contact.getName());
 arralistnumber.add(contactgetPhoneNumber());

然后使用for循环插入

 for(int i=0;i<arralistname.size();i++)
 {
 ContentValues values = new ContentValues();
 values.put(KEY_NAME,arralistname.get(i)); // Contact Name
 values.put(KEY_PH_NO,arralistnumber.get(i)); // C

 db.insert(tablename,values,null,null);

 } 

for(int i=0;i优化对数据库进行大量操作的速度的最佳方法是使用事务进行批处理操作

此外,即使执行时间很短,也可以考虑将操作放在后台,而用户看到PrimeStBar或其他东西。 例如:

db.beginTransaction();
try{
 for(Contact contact : contacts)
   {
   ContentValues values = new ContentValues();
   values.put(KEY_NAME, contact.getName()); 
   values.put(KEY_PH_NO, contact.getPhoneNumber()); 
   db.insert(tablename,values,null,null);
   }
 db.setTransactionSuccessful();// marks a commit
}
finally{
 db.endTransaction();
}

问题不在于如何将值插入数据库


似乎您有一些数据要插入数据库。如果项目在某种类型的列表中,则此处给出的答案将起作用。如果您有文件中的项目,则需要读取文件并解析这些项目,然后将其添加到数据库中。您不应将同一代码写入654次。

这些联系人在哪里存储?在数组中还是在文件中?我在json数组中有值..我在json数组中有值。为什么我的答案不正确?