在开发过程中,有时候我们需要使用SQLite数据库去本地存储一些临时文件,之前,我们的做法是通过SQLiteOpenHelper实现创建数据库,以及迭代开发中的数据库数据 内容 字段 变更时处理。
优点
1.通常我们在使用GreenDao的时候,我们只需定义数据模型,GreenDao框架将创建数据对象(实体)和DAO(数据访问对象),能够节省部分代码。
2.不向性能妥协,使用了GreenDao,大多数实体可以以每秒几千个实体的速率进行插入,更新和加载。
3.GreenDao支持加密数据库来保护敏感数据。
4.微小的依赖库,GreenDao的关键依赖库大小不超过100kb.
5.如果需要,实体是可以被激活的。而活动实体可以透明的解析关系(我们要做的只是调用getter即可),并且有更新、删除和刷新方法,以便访问持久性功能。
6.GreenDao允许您将协议缓冲区(protobuf)对象直接保存到数据库中。如果您通过protobuf通话到您的服务器,则不需要另一个映射。常规实体的所有持久性操作都可以用于protobuf对象。所以,相信这是GreenDao的独特之处。
7.自动生成代码,我们无需关注实体类以及Dao,因为GreenDao已经帮我们生成了。
GreenDao使用
1.在工程目录下build.gradle下添加插件
buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // 添加插件 更好支持GreenDao // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }
然后Sync Now即可。
2.在项目目录下的build.gradle下添加插件依赖
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao'
接下来继续添加依赖库
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.0.0-rc01' implementation 'com.android.support.constraint:constraint-layout:1.1.2' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' implementation 'org.greenrobot:greendao:3.2.2' // 添加库 }
再接下来就是初始化GreenDao配置,在app下的build.gradle目录下
greendao { schemaVersion 1 //当前数据库版本 }
到这里为止,GreenDao的基本配置就差不多完成了。
采坑之路:
之前开发中遇到订单ID 与 @Index(unique = true)//设置唯一性
框架中唯一性的值有冲突,导致长链接中断的问题,开发过程中要注意,此性质类似于主键ID,但不等同于主键。
By:杨