【问题标题】:SQLiteOpenHelper - Where do I store initial data? [duplicate]SQLiteOpenHelper - 我在哪里存储初始数据? [复制]
【发布时间】:2015-07-18 19:09:58
【问题描述】:

我有一些初始数据要插入到我的数据库中。我已将它添加到我的自定义 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);
    } }

请注意插入语句。名字的数量会增加,我不想让这个烂摊子。

我应该怎么做才能解决它?

【问题讨论】:

    标签: android database sqlite insert sqliteopenhelper


    【解决方案1】:

    您可以将您的数据库与您的应用程序一起“发布”。这样,您可以预设详细信息,而无需在用户下载它们时提交它们。但是,请注意,应用程序文件的大小可能会根据数据的大小而增加。 SQLite Asset Helper(链接:https://github.com/jgilfelt/android-sqlite-asset-helper)是一个可以用来完成此任务的库

    【讨论】:

      【解决方案2】:

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

      http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

      【讨论】:

        猜你喜欢
        • 2015-01-22
        • 2013-07-30
        • 2010-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-12
        • 1970-01-01
        相关资源
        最近更新 更多