GreenDao的简单使用[一]之增删改查

写在前面

在开发的过程中经常会用到数据库Sqlite。之前使用的是第三方的SqliteAssetsHelper,觉得很好用。只需要集成并书写一些必要的方法,提供外部增删改查的方法即可。那么我们今天来看下,另外一个很成熟的第三方-GreenDao。

简介

官网 http://greenrobot.org/greendao/

优势

1、一个精简的库
2、性能最大化
3、内存开销最小化
4、易于使用的 APIs
5、对 Android 进行高度优化

集成步骤

第一步  添加依赖

在项目的根目录的build.gradle中添加

buildscript {

    repositories {
        google()
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

 

在app目录下的build.gradle中添加

 

 

apply plugin: 'org.greenrobot.greendao'

greendao {
    schemaVersion 1
    daoPackage 'com.wj.greendao.dao'
    targetGenDir 'src/main/java'
}
dependencies{
    compile'org.greenrobot:greendao:3.0.1'
    compile'org.greenrobot:greendao-generator:3.0.0'
}

属性介绍:
 schemaVersion  指定数据库schema版本号,迁移等操作会用到
 daoPackage   dao的包名,包名默认是entity所在的包
 targetGenDir   生成数据库文件的目录,会生成DaoMaster,DaoSession,XXXDao都放在此目录下。

 

第二步 创建Bean

创建一个Java Bean

 

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

 

到此基本配置完成。

第三步 编译

点击AS的build->Make Project 项目会自动在指定的目录下生成 这三个文件。

具体使用

一般在Application中进行初始化。

public class MyApplication extends Application {
    private static final String DATA_NAME = "user";
    private DaoSession session;
    private static Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = this;
        setUpDatabase();
    }

    public static synchronized MyApplication getContext() {
        return (MyApplication) context;
    }

    public void setUpDatabase() {
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, DATA_NAME);
        SQLiteDatabase database = devOpenHelper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(database);
        session = daoMaster.newSession();
    }

    public DaoSession getSession() {
        return session;
    }

在清单文件中添加用户权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

并对application中添加自定义的MyApplication.

 

操作

 

/**
     * 增加
     */
    private void addUser() {
        try {
            User user = new User(null, "wj");
            MyApplication.getContext().getSession().getUserDao().insert(user);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
/**
     * 删除
     */
    private void deleteUser(){
        MyApplication.getContext().getSession().getUserDao().deleteByKey(null);//按照key删除
//        MyApplication.getContext().getSession().getUserDao().deleteAll();//删除所有
//        MyApplication.getContext().getSession().getUserDao().delete();//删除一个bean
    }
 /**
     * 更新数据
     */
    private void updateUser(){
//        MyApplication.getContext().getSession().getUserDao().update();
    }
/**
     * 查询数据
     */
    private void searchUser(){
//        User user = MyApplication.getContext().getSession().getUserDao().load(1);
//        List<User> users = MyApplication.getContext().getSession().getUserDao().loadAll();
//        List<User> list = MyApplication.getContext().getSession().getUserDao().queryBuilder().where(UserDao.Properties.Name.eq("")).list();
//        MyApplication.getContext().getSession().getUserDao().queryRaw("wj","");
    }

 

写在后面

简单的集成和操作调用就写到这里。后面有更新学习,再发表[二]。


 

GitHub:https://github.com/android99wj/MyGreenDao

个人微信公众号:摩羯座程序媛的日常 (dreamflower_hannah)


 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摩羯座程序媛

打赏的老板越来越富

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值