GreenDAO操作数据库总结

自定升级逻辑

GreenDao有做一个DevOpenHelper来处理创建和升级数据库的逻辑,但在升级里的处理是删除table重新创建,导致数据库已存在的用户数据丢失。

参考DevOpenHelper的实现自定义DownloadDBHelper,自定义升级逻辑。

在android数据库模块,新增的列可以通过alter语句做到,但要删除一列时通过drop却不行。

现在是通过整张表的复制实现的,先创建一张和当前的表一样的临时表,数据都在临时表中,将当前的表删除,创建一张新的表(当前我们期望的表),将数据从临时表恢复过来,删除临时表。

数据的增、删、改、查

一个疑问:更新某一列有没有更好的方式?
How can I read or update just a single column?
This is not what greenDAO is about. In greenDAO, you always read and update entities consisting of sever properties. This is not an issue in most cases: greenDAO is very fast and reading/updating all properties is typically done at rates >10.000 entities per second . If you still want to have per-column access, you can always resort to SQL.
官方回答是没有的,只能使用SQL语句做。

混淆

greenDAO 3

-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties

If you do not use SQLCipher:

-dontwarn org.greenrobot.greendao.database.**

If you do not use RxJava:

-dontwarn rx.**

greenDAO 2

-keepclassmembers class * extends de.greenrobot.dao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties

高效的操作

不使用for循环单个处理,使用批处理命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值