使用Java代码将静态数据插入SQLite数据库

3

我目前正在开发一款Android应用程序,并创建了几个表的数据库。我已经成功创建了数据库,一切都运行良好。

现在我想做的是向数据库中添加内容。这些内容将是静态的,并用于填充页面上的数字等内容。

我不确定如何设置插入,任何关于此方面的帮助都将是极好的。

请参见下面的代码,其中我创建了数据库和表。

package com.example.testerrquin.euro2016fanguide;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

/*** Created by rquin on 10/03/2016.*/

public class DatabaseHelper extends SQLiteOpenHelper {

public static final String DATABASE_NAME = "Euro2016.db";
public static final String TABLE_USERS = "Users_table";
public static final String TABLE_CAPACITY = "Capacity_table";


public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, 1);

}

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("Create table " + TABLE_USERS +" (UserID INTEGER PRIMARY KEY AUTOINCREMENT, Forename TEXT, Surname TEXT, Email TEXT, Password TEXT)");
    db.execSQL("Create table " + TABLE_CAPACITY + " (CapacityID INTEGER PRIMARY KEY AUTOINCREMENT, Capacity INTEGER)");
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS);
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CAPACITY);
    onCreate(db);
}


}

理想情况下,我希望将数据插入到容量表中,如下所示:
CapacityID Capacity
1          10000

2          40000

3          70000

感谢您的选择。
1个回答

1
如果您想在数据库中插入静态数据,并且这些数据不会在任何时候被修改,我认为最好的方法是在创建表后,在onCreate方法中插入它。因此,您的onCreate将如下所示:
@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("Create table " + TABLE_USERS +" (UserID INTEGER PRIMARY KEY AUTOINCREMENT, Forename TEXT, Surname TEXT, Email TEXT, Password TEXT)");
    db.execSQL("Create table " + TABLE_CAPACITY + " (CapacityID INTEGER PRIMARY KEY AUTOINCREMENT, Capacity INTEGER)");
    db.execSQL("INSERT INTO " + TABLE_CAPACITY + "  VALUES (10000, 40000, 70000)");
}

谢谢。现在我明白了。明天会尝试,但肯定会成功的。干杯。 - Richard Quinn
最终不得不使用这个。db.execSQL("Insert into " + TABLE_CAPACITY + " (Capacity) values (10000),(20000),(30000)"); 你的代码指引了我正确的方向。谢谢! - Richard Quinn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接