android - 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 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);
    } }

请注意插入语句。名字的数量会增加,我不想保持这种困惑。

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

最佳答案

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

关于android - SQLiteOpenHelper - 我在哪里存储初始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30114155/

相关文章:

android - 如何更改工具栏中的汉堡包图标?

database - 如何使用 Django 中的 South 将数据从一个模型迁移到另一个模型?

iphone - 将特殊符号点(.)插入sqlite?

javascript - 使用 FeathersJS 建立深层嵌套的父子关系

sql - SQLite查询以查找表中单独存储的项目的特定顺序

android - 如何在ActionBar中使用SearchView处理建议点击事件,ContentProvider调用webService,返回光标?

android - 如何获取 Android 设备中安装的所有用户 CA 证书的列表?

java - 解析.com : Get unique number when saving

node.js - 备份数据库

c - SQLite 和 C 的第一步