近期应公司要求研究了下GreenDao框架的使用,于是打算记录一下关于GreenDao的使用。
GreenDao的使用
GreenDao就是一个将对象映射到 SQLite 数据库中的轻量且快速的 ORM 解决方案。
GreenDao官网给出的优点
- 性能是AndroidORM中最快的
- 易于使用的API
- 最小的内存消耗
- 强大的社区:超过5000个GitHub明星表明有一个强大而活跃的社区
- 数据库加密:greenDAO支持SQLCipher,以确保用户的数据安全
- 库大小(<100KB),以保持较低的构建时间并避免65k方法限制
GreenDao引入
- 在Project的Bulid中引入:
repositories {
……
mavenCentral() // add repository
}
dependencies {
……
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
- 在Model的Build中引入
apply plugin: 'org.greenrobot.greendao' // apply plugin
greendao {
schemaVersion 1 //数据库版本号
daoPackage 'com.example.sqlperformancetest.GreenDao'//设置DaoMaster、DaoSession、Dao包名
targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
//targetGenDirTest:设置生成单元测试目录
//generateTests:设置自动生成单元测试用例
}
dependencies {
……
//GreenDao 轻量级数据库连接框架
implementation 'org.greenrobot:greendao:3.2.2'
}
Bean类注册
GreenDao的方便之处在于,当你创建了一个Bean实体类后,可以自动生成DaoMaster.java、DaoSession.java、PlayerDao.java,并且无须自己手动添加get、set函数。
@Entity
public class Player {
@Id//注意:Long型id,如果传入null,则GreenDao会默认设置自增长的值。
private Long Id;
@Unique
private String name;
@Property(nameInDb = "age")
private Integer age;
@Property
private String sex;
}
其中关于各类名词的解释如下: