greenDao

依赖
//根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'
}

@Entity:用于标识当前实体需要GreenDao生成代码。

schema:项目中存在多个Schema时,表明当前实体属于哪个Schema。

active:标记实体是否处于活动状态,活动状态才支持更新删除刷新等操作。

nameInDb:存储在数据库中的表名,不写默认与类名一致。

createInDb:标记创建数据库表,若有多个实体关联此表可设为false避免重复创建,默认为true。

 

 

属性注解

@Id :主键Long型,可以通过@Id(autoincrement = true)设置自增长。

@Property:设置一个非默认关系映射所对应的列名,默认是的使用字段名例如@Property (nameInDb="name")。

@NotNul:设置数据库表当前列不能为空。

@OrderBy:指定排序。

@Transient:添加此标记之后不会生成数据库表的列。

@Generated:为build之后GreenDao自动生成的注解,为防止重复,每一块代码生成后会加个hash作为标记。


    private DaoSession daoSession;
    private PersonDao personDao;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        daoSession = DaoManager.getDefault(this).daoSession();
        personDao = daoSession.getPersonDao();
          //添加
        for (int i = 0; i < 10; i++) {
            personDao.insert(new Person(null, "wang" + i, i));
        }
    }

    public void onClick(View view) {

            //查询
        List<Person> list = personDao.queryBuilder().build()
                .list();

        fore(list);
        //修改
        Person unique = personDao.queryBuilder()
                .where(PersonDao.Properties.Id.eq(2))
                .build().unique();
        unique.setName("tao");
        personDao.update(unique);

        //条件查询
        List<Person> list1 = personDao.queryBuilder()
                .where(PersonDao.Properties.Age.gt(10),PersonDao.Properties.Id.lt(18))
                .build()
                .list();
        fore(list1);
        //删除
        personDao.deleteByKey(unique.getId());

    }
        
    public void fore(List<Person> list) {
        for (Person person : list) {
            Log.e("tag",person.toString());
        }

    }

 

DaoManager
package com.example.zsd.myapplications0314.utils;

import android.content.Context;

import com.example.zsd.myapplications0314.greendao.DaoMaster;
import com.example.zsd.myapplications0314.greendao.DaoSession;

public class DaoManager {

    private final DaoSession daoSession;
    private static DaoManager daoManager;
    private DaoManager (Context context){
        daoSession = DaoMaster.newDevSession(context, "my.db");
    }
    public static DaoManager getIntance(Context context){
        if (daoManager == null) {
            synchronized (DaoManager.class){
                daoManager = new DaoManager(context);
            }
        }else {
            return daoManager;
        }
        return daoManager;
    }

    public DaoSession getDaoSession() {
        return daoSession;
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值