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案例,來看,簡單入門