greenDao:将数据存储在Android上的sqlite文件中



在Android智能手机文件系统上的sqlite文件中存储数据的推荐方法是什么?即使在设备重新启动后,我也打算恢复数据。"DaoMaster.createAllTables(db,true)"one_answers"DaoMaster.createAllTable(db,false)"之间有什么区别?

目前我正在MainActivity.java:中使用此代码

db = SQLiteDatabase.openOrCreateDatabase(new File(getExternalFilesDir(null).getPath(),
            "opendao.sqlite"), null);
daoMaster = new DaoMaster(db);
DaoMaster.createAllTables(db, true);
daoSession = daoMaster.newSession(db);
locationEntityDao = daoSession.getLocationEntityDao();
locationTraceEntityDao = daoSession.getLocationTraceEntityDao();
photoEntityDao = daoSession.getPhotoEntityDao();
photosEntityDao = daoSession.getPhotosEntityDao();
poiEntityDao = daoSession.getPoiEntityDao();
primitiveAttributesEntityDao = daoSession.getPrimitiveAttributesEntityDao();

我不得不修改经过验证的DaoMaster.java:

public DaoSession newSession(SQLiteDatabase db) {
    return new DaoSession(db, IdentityScopeType.Session, daoConfigMap);
}

我不太确定我是否理解你的问题。"设备重启"是什么意思?工厂的浓缩咖啡?你按照绿道网上的说明做了吗?我使用greenDao已经有一段时间了,我从未修改过生成的DaoMaster,它应该按照生成的方式工作。阅读代码时,当您使用默认的daoMaster.newSession()时,使用的数据库是在创建daoMaster时使用的数据库,因此不需要进行修改。

对于第二个问题,如果您遵循生成的代码,您将看到在createAllTables(SQLiteDatabasedb,boolean ifNotExists)中设置true或false ifNotExist参数之间的差异。此布尔值确定数据库中的每个表是否应该在已经存在的情况下创建。如果设置为true,则如果数据库中已存在表,则此CREATE命令将无效。

相关内容

  • 没有找到相关文章

最新更新