为了账号安全,请及时绑定邮箱和手机立即绑定

Android预置数据库

Android预置数据库

Helenr 2019-07-12 15:10:21
Android预置数据库我正在开发一个Android应用程序,在用户使用该应用程序之前,它需要在应用程序的数据库中填充几个条目(一个表,有1000-10000行)。我已经看过一些教程,我不确定做这件事的最佳方法。我是否应该在每次启动应用程序时检查数据库是否存在,如果没有数据库,应该创建数据库并插入我需要的数千条记录吗?还是有更好的方法来处理这个问题?理想情况下,它可以作为应用程序安装过程的一部分,但我不确定这是否可行。如有任何反馈,将不胜感激。
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

下面是一个如何创建和填充数据库的例子,您可以在应用程序安装上这样做,这只会创建一个条目,尽管这样做可能对您想要做的事情效率很低。

private static class settingsDatabaseHelper extends SQLiteOpenHelper{

    //SQL String for creating the table required
    private static final String CREATE_SETTINGS_TABLE    = "CREATE TABLE tbl_settings(" +
            "_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
            "VOIPUSERNAME TEXT," +
            "VOIPAUTHID TEXT," +
            "PASSWORD TEXT," +
            "VOIPDISPLAYNAME TEXT," +
            "SIPPROXYSERVER TEXT," +
            "SIPREGISTRAR TEXT," +
            "SIPREALM TEXT," +
            "EXPIRESTIME INTEGER);";    

    //constructor
    public settingsDatabaseHelper(Context context, String name,
            CursorFactory factory, int version) {
        super(context, name, factory, version);

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_SETTINGS_TABLE);
         ContentValues initialValues = new ContentValues();
            initialValues.put("VOIPUSERNAME", "xxxxx");
            initialValues.put("VOIPAUTHID", "xxxxxxxxxx");
            initialValues.put("PASSWORD", "xxxxxx");
            initialValues.put("VOIPDISPLAYNAME", "xxxxxxxxx");
            initialValues.put("SIPPROXYSERVER", "xxxxxxxxxxxxx");
            initialValues.put("SIPREGISTRAR", "xxxxxxxxxxx");
            initialValues.put("SIPREALM", "xxxxxxxxxx");
            initialValues.put("EXPIRESTIME", xxxxxxxxxxx);
            Log.d("1.6", "gets to here");
            db.insert(SETTINGS_TABLE, null, initialValues);

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.w(TAG, "Upgrading database from version " + oldVersion + " to " +
                 newVersion + ", which will destroy all old data");

        db.execSQL("DROP TABLE IF EXISTS " + SETTINGS_TABLE);
        onCreate(db);

    } }//end helper class}


查看完整回答
反对 回复 2019-07-12
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

我现在要做的就是在资产文件夹中发布一个预先填充的数据库。你可以在那里放进文件,然后按他们的原样使用。但是,请注意,大小限制为1MB,因此您可能不得不拆分或压缩文件。

压缩非常方便,操作系统本身也很好地支持。

希望这会有帮助:)


查看完整回答
反对 回复 2019-07-12
  • 3 回答
  • 0 关注
  • 640 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信