使用SQLiteOpenHelper onCreate()方法时,向sqlite插入2行

时间:2015-07-06 17:39:58

标签: java android sql sqlite android-sqlite

创建数据库的代码:

private static final String DB_CREATE =
                            "CREATE TABLE " + TABLE_NAME + "(" +
                                    COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                                    COLUMN_ITEM +" TEXT NOT NULL " +
                            ");";

我使用以下代码,但它只插入最后一个值(Swipe me to delete),但不插入第一个(Click me to edit),那么我该如何继续插入2行?

@Override
public void onCreate(SQLiteDatabase database) {
    database.execSQL(DB_CREATE);

    ContentValues contentValues = new ContentValues();

    contentValues.put(COLUMN_ITEM, "Click me to edit");
    contentValues.put(COLUMN_ITEM, "Swipe me to delete");

    database.insert(
            TABLE_NAME,
            null,
            contentValues
    );
}

了解如何解决它,以便我在下面留下答案,但如果有人知道如何使用ContentValues插入超过1行,我会很感激答案。

谢谢!

2 个答案:

答案 0 :(得分:2)

insert()会在ContentValues对象中插入包含值的单行。

要获得两行,您需要使用不同的insert()拨打ContentValues两次:

contentValues.put(COLUMN_ITEM, "Click me to edit");
database.insert(TABLE_NAME, null, contentValues);
contentValues.put(COLUMN_ITEM, "Swipe me to delete");
database.insert(TABLE_NAME, null, contentValues);

答案 1 :(得分:0)

好的,我发现如何使用execSQL解决它:

  @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DB_CREATE);

        database.execSQL("INSERT INTO "+ TABLE_NAME  + " VALUES(null, 'Click me to edit');");
        database.execSQL("INSERT INTO "+ TABLE_NAME  + " VALUES(null, 'Swipe me to erase');");

    }