1.配置gradle:
apply plugin: 'org.greenrobot.greendao' //添加这个插件,实现不用手动生成bean
compile 'org.greenrobot:greendao:3.0.1'
//执行build -- makeproject后自动生成bean dao到对应的位置
greendao{
//数据库版本号,更新时要修改+1
schemaVersion 2
//生成的包名
daoPackage "com.motian.greendaosrc.db.dao"
//生成到哪个路径下的包名
targetGenDir "src/main/java"
}
2.module gradle
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
3.编写实体bean
参考:http://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/#Basic_propertyannotationsId_Property_etc
@Entity(
//如果有多个数据库,指定库的名字
//schema = "myschema",
//库是活跃的状态,活动实体有更新、删除和刷新方法。
//active = true,
//指定表名字
nameInDb = "user_db",
//定义在这里跨越多个列的索引
indexes = {@Index(value = "name DESC", unique = true)}
//是否创建在数据库,默认是true
//createInDb = false
)
public class User {
//long型属性值作为实体标识,在数据库术语中,它是主键,参数递增是一个标志,使ID值不断增加的(不重复使用旧的值)
@Id(autoincrement = true)
private Long id;
// 自定义字段
@Property(nameInDb = "user_id")
@Index(unique = true) // 建立索引
@NotNull
private String userId;
@Unique // 唯一
@NotNull
private String identity;
//属性可以让您定义一个非默认的列名称,该列名称映射到数据库
@Property(nameInDb = "user_name")
//唯一索引,使得所有name都是唯一
@Index(unique = true)
private String name;
@NotNull
private int repos;
private String loaction;
//数据库三范式一对一,指定一个实体bean(Customer)
//@ToOne(joinProperty = "customerId")
//private Customer customer;
//数据库三范式一对多,指定一个实体List(List)
//@ToMany(referencedJoinProperty = "ownerId")
//private List ownedSites;
//短暂的标记属性将被排除在持久性之外。使用这些临时状态,等等。另外,你也可以用java关键字
@Transient
private int tempUsageCount;
}
4.执行build -- make project 实体bean会对应的生成get set方法
5.升级的使用:
修改gradle schemaVersion 2 +1
@Override
public void onUpgrade(Database db, int oldVersion, int newVersion) {
MigrationHelper.migrate(db, UserDao.class);
}
实体bean中添加新的字段,执行第4步,即可使用
apply plugin: 'org.greenrobot.greendao' //添加这个插件,实现不用手动生成bean
compile 'org.greenrobot:greendao:3.0.1'
//执行build -- makeproject后自动生成bean dao到对应的位置
greendao{
//数据库版本号,更新时要修改+1
schemaVersion 2
//生成的包名
daoPackage "com.motian.greendaosrc.db.dao"
//生成到哪个路径下的包名
targetGenDir "src/main/java"
}
2.module gradle
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
}
3.编写实体bean
参考:http://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/#Basic_propertyannotationsId_Property_etc
@Entity(
//如果有多个数据库,指定库的名字
//schema = "myschema",
//库是活跃的状态,活动实体有更新、删除和刷新方法。
//active = true,
//指定表名字
nameInDb = "user_db",
//定义在这里跨越多个列的索引
indexes = {@Index(value = "name DESC", unique = true)}
//是否创建在数据库,默认是true
//createInDb = false
)
public class User {
//long型属性值作为实体标识,在数据库术语中,它是主键,参数递增是一个标志,使ID值不断增加的(不重复使用旧的值)
@Id(autoincrement = true)
private Long id;
// 自定义字段
@Property(nameInDb = "user_id")
@Index(unique = true) // 建立索引
@NotNull
private String userId;
@Unique // 唯一
@NotNull
private String identity;
//属性可以让您定义一个非默认的列名称,该列名称映射到数据库
@Property(nameInDb = "user_name")
//唯一索引,使得所有name都是唯一
@Index(unique = true)
private String name;
@NotNull
private int repos;
private String loaction;
//数据库三范式一对一,指定一个实体bean(Customer)
//@ToOne(joinProperty = "customerId")
//private Customer customer;
//数据库三范式一对多,指定一个实体List(List)
//@ToMany(referencedJoinProperty = "ownerId")
//private List ownedSites;
//短暂的标记属性将被排除在持久性之外。使用这些临时状态,等等。另外,你也可以用java关键字
@Transient
private int tempUsageCount;
}
4.执行build -- make project 实体bean会对应的生成get set方法
5.升级的使用:
修改gradle schemaVersion 2 +1
@Override
public void onUpgrade(Database db, int oldVersion, int newVersion) {
MigrationHelper.migrate(db, UserDao.class);
}
实体bean中添加新的字段,执行第4步,即可使用