Android GreenDAO 3.0 不修改版本号的情况下增加、删除表、添加字段
最近项目中使用了GreenDAO的3.0以上的版本,出现需要增加删除表的需求,刚开始用,发现官方对增加和删除的方法是每次去修改数据库版本号,版本一旦升级,那么原来数据库中的表会全部删除再重建。太麻烦,如果不修改版本号,单单只是在model中添加@Entity
那么会出现说找不到这张单,无法使用,所以在网上查找资料博客,大部分都是简易的介绍3.0以上的增删改查功能,对于删表和增加表,大部分还是参照官方的升级版本号的做法,没有找到其他方法,所以自己花时间了解了下,实现不修改版本号增加表,删除表,增加表内字段。很简单,直接上代码。
TransactionTypeI18nModelDao typeI18nModelDao = GreenDaoManager.getInstance().getNewSession().getTransactionTypeI18nModelDao(); // 删表和建表 // Database database = GreenDaoManager.getInstance().getNewSession().getDatabase(); // typeI18nModelDao.dropTable(database, true); // typeI18nModelDao.createTable(GreenDaoManager.getInstance().getNewSession().getDatabase(), true); typeI18nModelDao.deleteAll(); typeI18nModelDao.insertInTx(gdResultBean.getObject());
先建model,加上@Entity注解再次Make project,gen目录上生成对应model的DAO文件后,代码调用以上注解部分的代码即可实现对单张表的增加和删除,如果想要添加字段,可以直接在model中添加要增加的属性名,make project后将表删除,再调用创建表的方法即可。