Android GreenDao

1、每次都会重建数据库的问题 ,如果在最开始就需要数据库里面有大量东西(比如地址) 那么是不希望重建的

greendao {
//    schemaVersion 1//数据库版本号
//    daoPackage 'cn.blemed.ems.database'//设置DaoMasterDaoSessionDao包名
//    targetGenDir 'src/main/java'//设置DaoMasterDaoSessionDao目录
    //targetGenDirTest:设置生成单元测试目录
    //generateTests:设置自动生成单元测试用例
}

最开始先配置,生成相应文件DaoMasterDaoSessionDao后,再注释改配置,然后修改DaoMaser下面的

OpenHelper的构造方法里面的createAllTables(db, true);第二个参数为true
@Override
public void onCreate(Database db) {
    Log.i("greenDAO", "Creating tables for schema version " + SCHEMA_VERSION);
    createAllTables(db, true);
}
因为最后会调用
/** Creates the underlying database table. */
public static void createTable(Database db, boolean ifNotExists) {
    String constraint = ifNotExists? "IF NOT EXISTS ": "";
    db.execSQL("CREATE TABLE " + constraint + "\"USER\" (" + //
            "\"_id\" INTEGER PRIMARY KEY ," + // 0: id
            "\"name\" TEXT," + // 1: name
            "\"birth\" TEXT);"); // 2: birth
}
为true怎判断是否有该表,有的话就不重建


2、清除缓存 可能第二次查找的实在缓存中取出的导致数据没变化

DBManager.getDaoSession().clear();
DBManager.getDaoSession().getUserDao().detachAll();用来清除缓存

3、如果对应数据库表格的类需要扩展,那么最后需要在Dao的Properties类中去掉数据库没有的那个字段

bindValues也去掉相应的字段

CREATEs数据库语句也去掉相应字段


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值