在表格中输入多行的最简单方法

时间:2012-04-15 02:20:34

标签: android sqlite android-intent

当我第一次运行应用程序时,我想创建一个表并在表中输入一些行。为此,我编写了这段代码并且工作正常:

            //Creating the table
        db.execSQL(MRM_BOOKING_LOGIN_TABLE_CREATE);         
        //Setting the values in the table
        ContentValues contentValuesLogin = new ContentValues();
        contentValuesLogin.put(USER_ID, "asdf");
        contentValuesLogin.put(PASSWORD, "1234");
        //Inserting a row in the table
        db.insert(MRM_BOOKING_LOGIN_TABLE, null, contentValuesLogin);

但我想在表格中输入至少15到20行。每次插入一行后,我会清除ContentValues对象(或创建ContentValues的另一个对象)并在新创建的表中输入另一行,这是一个好主意吗?这样,代码行也会增加很多。我相信可能还有其他更好的替代方法来做同样的事情。请建议

此致

3 个答案:

答案 0 :(得分:2)

我认为,通过db.insert插入多个记录的唯一方法是使用循环。将它与SQLite 交易结合起来,它将加快这一过程。

答案 1 :(得分:2)

示例代码:

try {
            // open the database
            db.beginTransaction();

            for (your objects) {
                ContentValues cv = new ContentValues();
                cv.put(COL1, obj.p1);
                cv.put(COL2, obj.p2);
                //.....

                long id = db.insertOrThrow(DATABASE_TABLE, COL_Id, cv);
            }

            db.setTransactionSuccessful();
} catch (Exception e) {
            throw e;
        } finally {
            db.endTransaction();
            // close database
        }

答案 2 :(得分:-1)

您可以使用ContentResolver.bulkInsert (Uri url, ContentValues[] values)插入多行。

可以从这里获得更多信息:

Insertion of thousands of contact entries using applyBatch is slow

希望这会对你有所帮助。