1.倒依赖
//根gradle
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
//app gradle
apply plugin: 'org.greenrobot.greendao'
greendao {
schemaVersion 1 //数据库版本号
daoPackage '包名.database' //设置时生成代码的目录
targetGenDir 'src/main/java' //设置DaoMaster、DaoSession、Dao目录
}
dependencies {
compile 'org.greenrobot:greendao:3.2.2'
}
2.Preson里写
@Entity(nameInDb = "preson")
@Id(autoincrement = true)
private Long id;
@Property(nameInDb = "name")
private String name1;
重编译
3.写DaoManager单例模式
public class DaoManager {
private static DaoManager daoManager;
private final DaoSession daoSession;
private DaoManager(Context context) {
daoSession = DaoMaster.newDevSession(context, "my.db");
}
public static DaoManager instance(Context context) {
if (daoManager == null) {
synchronized (DaoManager.class) {
if (daoManager == null) {
daoManager = new DaoManager(context);
}
}
}
return daoManager;
}
public DaoSession getDaoSession() {
return daoSession;
}
}
4.数据库操作增删改查
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
daoSession = DaoManager.instance(this).getDaoSession();
personDao = daoSession.getPersonDao();
}
public void add(View view) {
index++;
personDao.insert(new Person(null, "wang" + index, index));
}
public void delete(View view) {
Person person = personDao.queryBuilder()
.where(PersonDao.Properties.Id.eq(1))
.build().unique();
personDao.delete(person);
}
public void update(View view) {
Person person = personDao.queryBuilder()
.where(PersonDao.Properties.Id.eq(1))
.build().unique();
person.setAge(1000);
personDao.update(person);
}
public void query(View view) {
List<Person> list = personDao.queryBuilder()
.where(PersonDao.Properties.Id.ge(5))
.build().list();
Log.e("tag", "query" + list.get(0).getId());
}
}