Greendao2.2.3环境配置
//在根目录下的build.gradle file:
buildscript {
repositories {
jcenter()
mavenCentral() // add repository(有了jcenter可以不用配置mavenCentral)
}
greendao {
//数据库的schema版本,也可以理解为数据库版本号
schemaVersion 1
//设置DaoMaster、DaoSession、Dao包名,也就是要放置这些类的包的全路径。
daoPackage 'com.zhxy.www.test.greendao'
//设置DaoMaster、DaoSession、Dao目录
targetGenDir 'src/main/java'
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
}
// 在项目中的build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
dependencies {
compile 'org.greenrobot:greendao:3.2.2' // add library
}
Make project 一下让android studio下载相应的工具
然后再bean包下创建一个实体如people
然后make project一下自动生成的代码就出来了 ,可以在项目中自由使用
greendao中有三个基本的接口,分别是DaoMaster,DaoSession,Daos;
DaoMaster是greendao的入口,持有SQliteDataBase对象,被用于管理DAO类。它有静态的方法用于创建表和删除表,内部类为openHelper和DevOpenHelper
DaoSession管理着所有的可用的DAO对象,这些对象可以使用getter方法来获取。DaoSession针对实体提供一些普通的持久化方法,如insert,load,refresh,delete。另外DAOSession对象还可以用来标示追踪作用域
DAOS:数据访问对象用于持久化和查询实体。greendao为每一个实体生成一个DAO类,它持有的持久化方法比DAOSession多很多。
greendao的初始化为
4 5 6 7 |
// do this once, for example in your Application class helper = new DaoMaster.DevOpenHelper(this, "notes-db", null); db = helper.getWritableDatabase();//db是DataBase daoMaster = new DaoMaster(db); daoSession = daoMaster.newSession(); // do this in your activities/fragments to get hold of a DAO noteDao = daoSession.getNoteDao(); |
Greendao 3及以上使用注解来定义实体
5 6 7 8 9 10 11 12 13 14 15 16 |
@Entity public class User { @Id(autoincrement = true) private Long id;
@Property(nameInDb = "USERNAME") private String name;
@NotNull private int repos;
@Transient private int tempUsageCount;
... } |
@entity注释将Java类用户转化为一个数据库支持的实体。这还将指导greenDAO生成必要的代码(例如DAOs),它只支持Java类。如果你喜欢像Kotlin这样的另一种语言,你的实体类仍然必须是Java。虽然没有任何附加参数通常是可以的,但是您仍然可以使用@entity来配置一些细节:注意,在使用分级插件时,当前不支持多个模式。目前,继续使用您的生成器项目。
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
@Entity( 、// |