GreenDao学习笔记

以前听朋友说他们项目中要在本地存许多数据库表,管理数据库打算使用GreenDao,那个时候好像GreenDao要使用的话需要先建一个Java工程,生成一些代码,然后再在Android项目中使用。今天看了看github上GreenDao项目,搜了几遍文章看看,做一个笔记。

一,GreenDao是什么?

GreenDao是android中的一个ORM框架,用于操作本地数据库,现在市面上主流的框架有 GreenDAO、OrmLite、SugarORM、Active Android、Realm等。GreenDao在使用起来时据其官网说效率比其他orm框架要高,使用它可以简化我们对SQLite数据库的操作。

二,GreenDao 3.*的使用

github地址 https://github.com/greenrobot/greenDAO
GreenDao 3.*版本的基本的增删改查功能使用起来比较简单。
1. 按照github上的接入步骤在我们的项目中添加GreenDao依赖
2. 在app的gradle配置文件中的android节点中配置生成文件路径

/*greendao数据库配置*/
greendao {
    schemaVersion 1//指定数据库schema版本号,迁移等操作会用到
    daoPackage 'com.huan.greendaolearn.greendao.gen'//dao的包名,包名默认是entity所在的包
    targetGenDir 'src/main/java'//生成数据库文件的目录
}

3. 在greendao.gen目录下编写一个实体类User,然后Rebuild Project,这样就会在greendao.gen目录下生成DaoMaster,DaoSession,UserDao文件

@Entity
public class User {
@Id
private Long id;
private String name;
@Transient
private int tempUsageCount;
}

4. 在Application的实现类中初始化数据库

    public class MyApplication extends Application {
    private DaoMaster.DevOpenHelper mHelper;
    private SQLiteDatabase db;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    private static MyApplication instance;

    public DaoSession getmDaoSession() {
    return mDaoSession;
    }

    public SQLiteDatabase getDb() {
    return db;
    }

    @Override
    public void onCreate() {
    super.onCreate();
    instance = this;
    setDatabase();
    }

    public static MyApplication getInstance() {
    return instance;
    }

    /**
     * 设置greendao
     */
    private void setDatabase() {
    //这里并不需要写create table这样的sql语句,因为greenDao已经帮助实现了
    //默认的 DaoMaster.DevOpenHelper 会在数据库升级时,删除所有的表,这将导致数据丢失,
    //所以在正式的项目中,应该做一层封装,以实现数据库的安全升级
    mHelper = new DaoMaster.DevOpenHelper(this, "notes_db", null);
    db = mHelper.getWritableDatabase();
    mDaoMaster = new DaoMaster(db);
    mDaoSession = mDaoMaster.newSession();
        }

    }

5. 在MainActivity中我们就可以使用UserDao对象进行数据库操作了
获取UserDao对象

mUserDao = MyApplication.getInstance().getmDaoSession().getUserDao();

进行增删改查

@OnClick(R.id.add)
 void addClicked() {
    mUser = new User((long) 2, "张三");
    mUserDao.insert(mUser);
}

@OnClick(R.id.delete)
void delClicked() {
    mUserDao.deleteByKey((long) 2);
}

@OnClick(R.id.update)
void updClicked() {
    mUser = new User((long) 2, "张三san");
    mUserDao.update(mUser);
}

@OnClick(R.id.select)
void selClicked() {
    List<User> users = mUserDao.loadAll();
    String username = "";
    for (int i = 0; i < users.size(); i++) {
        username = users.get(i).getName() + ",";
    }
    resTv.setText(username);
}
三,写完这个demo感觉入门还是挺简单的,之前听朋友说要先用一个Java工程生成一些代码,然后再在项目中使用,这应该是2.x的使用方法。3.x 使用起来感觉简单了许多。通过这次的学习,也算是简单的了解了下GreenDao的一些简单的用法。

参考文章:
GreenDao3.0简单使用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值