1*在主目录build.gradle配置插件路径GreenDao 3
一个将对象映射到 SQLite 数据库中的轻量且快速的ORM解决方案
资料
android-database-sqlcipher Github 数据库加密
GreenDaoUpgradeHelper Github 数据库升级辅助
导入
- 配置项目的 build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
}
2*在工程目录运用插件并添加依赖
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao'3依赖
dependencies { ......implementation 'org.greenrobot:greendao:3.2.2'}
4*在工程目录android下添加greedao实体类转换自动生成路径
greendao{ schemaVersion 1//版本 targetGenDir 'src/main/java' daoPackage 'com.lyj.db.dao' }
5.混淆
- 配置模组的 proguard-rules.pro
# greendao -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 Rx: -dontwarn rx.**
二:创建实体类@Entity public class Test { @Id(autoincrement = true) private Long _id; private String name; @NotNull private String url;}
然后直接点击Build--->Make Module ...会自动生成之前指定包名地址:
如下指定地址的包及DaoMaster,DaoSession等相关文件:
daoPackage 'com.caimao.qian.data.db.dao'//通过gradle插件生成的数据库相关文件的包名,默认为你的entity所在的包名;
这里要解释一下生成的三个核心类的作用:
- DaoMaster:使用greenDAO的切入点。DaoMaster保存数据库对象(SQLiteDatabase)并管理特定模式的DAO类(而不是对象)。 它具有静态方法来创建表或将它们删除。 其内部类OpenHelper和DevOpenHelper是在SQLite数据库中创建模式的SQLiteOpenHelper实现。一个DaoMaster就代表着一个数据库的连接。
- DaoSession:管理特定模式的所有可用DAO对象,您可以使用其中一个getter方法获取。 DaoSession还为实体提供了一些通用的持久性方法,如插入,加载,更新,刷新和删除。 DaoSession可以让我们使用一些Entity的基本操作和获取Dao操作类,DaoSession可以创建多个,每一个都是属于同一个数据库连接的。
- XxxDAO:数据访问对象(DAO)持续存在并查询实体。 对于每个实体,GreenDAO生成一个DAO。 它比DaoSession有更多的持久化方法,例如:count,loadAll和insertInTx。