这是我第一个使用数据库的应用程序,希望有人能帮助我理解这个问题。我有这个插入方法:
public long insertData(String name, int password){
....
contentValues.put(KEY_NAME, name);
contentValues.put(KEY_PASSWORD, password);
return db.insert(DBHelper.TABle_NAME, null, contentValues);
}
我可以使用此方法插入一些数据,但如果我有数千行呢?如何将所有这些数据插入数据库?我在哪里可以写出所有这些数据,在额外的课程或什么?
答案 0 :(得分:0)
没有'批量装载'我所知道的设施。 您只需旋转列表,然后插入项目。
您可能想要考虑为什么您可能会尝试将数千个项目插入数据库,如手机或平板电脑这样的硬件限制设备上。
最好将数据放在服务器上,并创建一个可用于按页面加载数据(用于显示)的API吗?
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以使用相同的方法插入任意数量的记录,无论是1还是1,000。使用循环调用insert方法并将记录添加到数据库中。考虑将数据库执行放在AsyncTask中以防止UI线程挂起。
您的数据可以来自任何地方,只要它的格式适合您的功能参数String, int
答案 3 :(得分:0)
正如其他人所说,你需要做一些迭代。 通过执行批量事务可以获得效率。这是一个例子:
public int bulkInsert(@NonNull ContentValues[] values) {
int insertCount = 0;
SQLiteDatabase db = mSqlHelper.getWritableDatabase();
try {
db.beginTransaction();
for (ContentValues value : values) {
if (db.insertOrThrow(tableName, null, value) == -1) {
throw new Exception("Unknown error while inserting entry in database.");
}
insertCount++;
}
db.setTransactionSuccessful();
} catch (Exception e) {
Log.e(LOG_TAG, "An error occurred while bulk-inserting database entries.\n" + e.getMessage(), e);
} finally {
db.endTransaction();
}
return insertCount;
}