greendao本地数据库的使用

添加依赖

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();//传入迭代器或数组
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值