在Android中将数据插入数据库

时间:2015-03-11 21:34:41

标签: android database sqlite insert

这是我第一个使用数据库的应用程序,希望有人能帮助我理解这个问题。我有这个插入方法:

 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);
    }

我可以使用此方法插入一些数据,但如果我有数千行呢?如何将所有这些数据插入数据库?我在哪里可以写出所有这些数据,在额外的课程或什么?

4 个答案:

答案 0 :(得分:0)

没有'批量装载'我所知道的设施。 您只需旋转列表,然后插入项目。

您可能想要考虑为什么您可能会尝试将数千个项目插入数据库,如手机或平板电脑这样的硬件限制设备上。

最好将数据放在服务器上,并创建一个可用于按页面加载数据(用于显示)的API吗?

答案 1 :(得分:0)

你可以用同样的方式做到这一点,用少量数据做,你只需要捕获数千行,使用你的方法插入数据库,你可以使用asyntask或服务来做到这一点

答案 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;
}