Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLiteOpenHelper-我在哪里存储初始数据?_Android_Database_Sqlite_Insert_Sqliteopenhelper - Fatal编程技术网

Android SQLiteOpenHelper-我在哪里存储初始数据?

Android SQLiteOpenHelper-我在哪里存储初始数据?,android,database,sqlite,insert,sqliteopenhelper,Android,Database,Sqlite,Insert,Sqliteopenhelper,我有一些初始数据要插入数据库。我已经将它添加到我的自定义SQLiteOpenHelper类中 package com.company.database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MySQLiteOpenHelper extends SQL

我有一些初始数据要插入数据库。我已经将它添加到我的自定义SQLiteOpenHelper类中

package com.company.database;

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

public class MySQLiteOpenHelper extends SQLiteOpenHelper {
    public static final String TABLE_NAMES = "names";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "name";

    private static final String DATABASE_NAME = "my.db";
    private static final int DATABASE_VERSION = 1;

    private static final String TABLE_NAMES_CREATE = "CREATE TABLE " + TABLE_NAMES + "("
            + COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
            + COLUMN_NAME + " VARCHAR NOT NULL);";

    private static final String TABLE_NAMES_INSERT = "INSERT INTO " + TABLE_NAMES
            + "(" + COLUMN_NAME + ")" + " VALUES "
            + "('Antony'),"
            + "('Benny'),"
            + "('Carol'),"
            + "('Daniel'),"
            // ... AND SO ON ...

    public MySQLiteOpenHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

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

    @Override
    public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
        dropTable(database);
        onCreate(database);
    }

    private void dropTable(SQLiteDatabase database) {
        database.execSQL("DROP TABLE IF EXISTS " + TABLE_NAMES);
    } }
请注意插入语句。名字的数量会增加,我不想让这一团糟


我应该怎么做才能修复它?

您可以在计算机上创建数据库,将其包含在APK中,并在第一次运行时将其加载到应用程序中

您可以随应用程序一起“运送”数据库。这样,您就可以预设详细信息,而不必在用户下载时提交它们。但是,请注意,应用程序文件大小可能会根据数据的大小而增加。可以用来完成此任务的库是SQLite资产帮助器(链接:)