添加依赖
implementation 'org.greenrobot:greendao:3.2.2' // add library
在APP的grade中
android{
greendao {
schemaVersion 1 //数据库版本号
daoPackage 'com.example.haoji.greendao.databases'
// 设置DaoMaster、DaoSession、Dao 包名,会自动创建databases目录
targetGenDir 'src/main/java'//设置DaoMaster、DaoSession、Dao目录
generateTests false //设置为true以自动生成单元测试。
targetGenDirTests 'src/main/java' //应存储生成的单元测试的基本目录。默认为 src / androidTest / java。
}
}
在项目的build.grade中
buildscript {
dependencies {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
}
具体的使用
新建一个bean类
@Entity
public class UserBean {
@Id
long id;
String name;
int password;
@Keep
public UserBean(long id,String name,int password){
this.id=id;
this.name=name;
this.password=password;
}
@Generated(hash = 1203313951)
public UserBean() {
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
}
新建完bean类之后,AS导航栏Build的Make Project生成数据库所需由的类。
初始化greendao
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, "aserbao.db");
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
userBeanDao = daoSession.getUserBeanDao();
插入数据
UserBean userBean = new UserBean();
userBean.setId(3);
userBean.setName("nang");
userBean.setPassword(1051);
userBeanDao.insert(userBean);
查询数据
QueryBuilder qb = userBeanDao.queryBuilder();
qb.where(UserBeanDao.Properties.Name.eq("nang"));//eq为等于,还有lt,le等比较方法;每个Dao的Properties里存有字段,如Text
List<UserBean> data = qb.list();
Log.e("QY","name:"+data.get(0).getPassword());
删除数据
userBeanDao.deleteAll();//删除所有数据
userBeanDao.delete(new UserBean(x,x,x));//会根据id删除
userBeanDao.deleteInTx();//传入迭代器或数组
userBeanDao.deleteByKey();//根据id删除
userBeanDao.deleteByKeyInTx();//根据id删除,且可传入迭代器或数组
查找数据
noteDao.loadAll();
noteDao.load(id);
更新数据
noteDao.update(new Note(x,x,x));//根据id查找并更新
noteDao.updateInTx();//传入迭代器或数组