GreenDao3.2.0的配置和简单使用

配置

前阵子操作数据库使用了GreenDao,写这篇的时候也拖了好一段时间,迟迟没有分享出来,下面就自带板凳开始GreenDao的配置和基本使用
- 在as中导入相关的包

  • 在app的gradle文件中配置
apply plugin: 'org.greenrobot.greendao'
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1'
    }
}
greendao {
      schemaVersion 1
      daoPackage 'com.huang.greendaodemo.gen'
      targetGenDir 'src/main/java'
}

schemaVersion :数据库schema版本号,迁移数据、升级数据库等操作会用到 daoPackage:由GreenDao自动生成代码所在的包名
targetGenDir:设置自动生成代码的目录

  • 在项目中定义一个实体类

    @Entity :定义实体类,默认类名即为表名(这里为user)
    @Id :标明主键,括号里可以指定是否自增(注意:要注解为@Id的字段最 好用Long型,笔者当初使用long出现问题,排查将近半盏茶时间)
    @NotNull : 不为null
    @Unique :唯一约束
    @ToMany : 一对多
    @OrderBy : 排序
    @ToOne : 一对一
    @Transient :不会创建到数据库表里

  • MakeProject


编译项目,User实体类会自动编译,之后会在gen目录下生成这三个文件

使用

  • GreenDao使用,首先是实例化GreenDao所需要的几个对象,相关代码如下:
public class BaseApplication extends Application{
    private SQLiteDatabase db;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    public static BaseApplication instances;

    @Override
    public void onCreate() {
        super.onCreate();
        instances = this;
        init();
    }

     public static BaseApplication getInstances() {
        return instances;
    }

    public void init() {
        //数据库的配置
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(instances, "note_db", null);
        db = devOpenHelper.getWritableDatabase();
        mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }
    public DaoSession getDaoSession() {
        return mDaoSession;
    }

    public SQLiteDatabase getDb() {
        return db;
    }
}

这里别忘了添加到AndroidManifest.xml里面

获取UserDao对象

private DaoSession mDaoSession;
private UserDao mUserDao;
mDaoSession = BaseApplication.getInstances().getDaoSession();
mUserDao = mDaoSession.getUserDao();
1、增
User mUser = new User();
mUser.setName("hello");
mUser.setText("world");
mUserDao.insert(mUser);
2、删
mUserDao.deleteByKey(id);
3、改
//注意是参数Long
User mUser = new User(1l,"hello","world");
mUserDao.update(mUser);
4、查
List<User> users = mUserDao.loadAll();

项目demo地址:https://github.com/zlhuang/greenDaoDemo
最后,希望这篇文章可以帮助到您,本文有任何问题欢迎指正。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值