GreenDao
**GitHub地址: **https://github.com/greenrobot/greenDAO/
**文档地址: **http://greenrobot.org/greendao/documentation/
市面上面主流的数据库
- GreenDao
- Reaml
- Ormlite
- Litepal
- SugarORM
Orm的优势
orm对象关系映射,把数据映射成对象
- 让业务代码访问对象,而不是数据库
- 隐藏了面向对象的逻辑sql的查询详情
- 无需处理数据库的实现
ORM相比android自身提供的api
- 需拼装sql
- 需要自己写操作数据库的常规的代码
- 没有实现级联查询
- 不能把数据映射成对象
GreenDao
如何选择一个开源框架
- 性能
- 文档的完整性
- 流行因素
- 使用是否容易,学习成本
- 扩展性如何
greendao综合来看,比较满足
AndroidStudio接入
文档地址:http://greenrobot.org/greendao/documentation/introduction/
//项目的build.grade
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
}
//appmodule配置 Android模块下面
/*针对greenDao的一些配置*/
greendao {
schemaVersion 1 //数据库版本号
daoPackage 'com.rao.demo.activity.home.greendao.dao' //自动生成的工具类的包名
targetGenDir 'src/main/java' //路径
}
//添加依赖
compile 'org.greenrobot:greendao:3.2.2'
gradle配置,基础属性
文档地址:http://greenrobot.org/greendao/documentation/modelling-entities/
// In the build.gradle file of your app project:
android {
....
}
greendao {
schemaVersion 2 //定义版本
daoPackage //生成相文件存放路径
targetGenDir //生产资源存放路径
generateTests //是否生成单元测试
...
}
@Entity
public class User {
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = "USERNAME")
private String name;
@NotNull
private int repos;
@Transient
private int tempUsageCount;
...
}
Session操作实体的类
地址:http://greenrobot.org/greendao/documentation/sessions/
daoMaster = new DaoMaster(db);
daoSession = daoMaster.newSession();
查询的操作
地址:http://greenrobot.org/greendao/documentation/queries/
List<User> joes = userDao.queryBuilder()
.where(Properties.FirstName.eq("Joe"))
.orderAsc(Properties.LastName)
.list();
根据文档和dmeo案例,来看,简单入门
网友评论