配置就完成了,之后点击Sync Now
在Sync时,出现了下载依赖很慢的事情,所以我在工程目录下的build.gradle将buildscript的repositories改成了
repositories {
google()
//jcenter()
maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’}
}
以及
allprojects {
repositories {
google()
//jcenter()
maven{ url ‘http://maven.aliyun.com/nexus/content/groups/public/’}
}
}
把地址改成了阿里云的仓库,下载就快了。
二、使用greendao(1)
2.1. 创建一个实体类
在目录下创建一个Package名为bean,在bean包下面创建一个Java类,类为实体类,即仅有属性以及getter、setter、构造方法以及toString()方法的类,一个实体类则对应一张数据库的表,我将这个实体类取名为UserInfo,类中有id,userName,phoneNumber,address等属性
import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Property;
@Entity
public class UserInfo {
@Id
private Long id;
@Property(nameInDb = “user_name”)
private String userName;
@Property(nameInDb = “phone_number”)
private String phoneNumber;
@Property(nameInDb = “address”)
private String address;
}
在这里,我用了许多注解,而这些注解有什么作用呢?简单介绍一下在GreenDao中常用的一些注解
@Entity:将我们的java普通类变为一个能够被greenDAO识别的数据库类型的实体类,也就是将这个类标记为要映射到数据库的实体类
@Id:主键,选择使用long或Long,若写成@Id(autoincrement = true)则可标记为自增长。
@Property(nameInDb = “”) :表示该类的这个属性是表的一个字段(即一列),且非主键,nameInDb值则是这个字段的名字,
@NotNull: 不为null
@Transient 不保存于数据库,添加此标记后不会生成数据库表的列
@Index 作为一个属性来创建一个索引,通过name设置索引别名,也可以通过unique给索引添加约束
@Unique: 唯一约束,也就是值必须唯一
@ToOne 表为一对一关系
@ToMany 一对多关系
@Generated 由greendao产生的构造函数或方法,此注释标记的所有代码元素都可以在生成的下一次运行中更改/删除
编译(Make Project)之后,代码就自动生成了构造函数及set get方法,之后再加上toString方法,在进行数据库操作时,可用toString()方法打印来验证结果的正确性。
@Entity
public class UserInfo {
@Id
private long id;
@Property(nameInDb = “user_name”)
private String userName;
@Property(nameInDb = “phone_number”)
private String phoneNumber;
@Property(nameInDb = “address”)
private String address;
@Generated(hash = 459973421)
public UserInfo(long id, String userName, String phoneNumber, String address) {
this.id = id;
this.userName = userName;
this.phoneNumber = phoneNumber;
this.address = address;
}
@Generated(hash = 1279772520)
public UserInfo() {
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName