GreenDao

作者: 浩然的天空sky | 来源:发表于2019-05-18 23:20 被阅读0次

greenDAO 是一款开源的面向 Android 的轻便、快捷的 ORM 框架,将 Java 对象映射到 SQLite 数据库中,我们操作数据库的时候,不在需要编写复杂的 SQL语句, 在性能方面,greenDAO 针对 Android 进行了高度优化,最小的内存开销 、依赖体积小同时还是支持数据库加密。

使用步骤:
1.添加依赖(App: build.gradle)

apply plugin: 'org.greenrobot.greendao'

 implementation 'org.greenrobot:greendao:3.2.2'
 implementation 'org.greenrobot:greendao-generator:3.2.2'

2.配置classpath(Project: build.gradle)

 dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
    }

3.自定义路径(App: build.gradle)

greendao {
    schemaVersion 1
    daoPackage 'com.example.along.myapplication.db'
    targetGenDir 'src/main/java'
}

属性介绍:
schemaVersion--> 指定数据库schema版本号,迁移等操作会用到;
daoPackage --> dao的包名,生成dao相关文件的包名;
targetGenDir --> 生成数据库文件的目录;

同步工程,便可使用

快速使用:
1.定义一个实体类

import org.greenrobot.greendao.annotation.Entity;
import org.greenrobot.greendao.annotation.Id;
import org.greenrobot.greendao.annotation.Generated;

@Entity
public class User {
    @Id
    private long id;
    private String name;
    private int age;

2.点击 Make Project(或者 Make Moudle 'App') 编译一下工程 。如果配置正确,会在配置的包目录下自动会生成 DaoMaster,DaoSession 和 UserDao 类 。


image.png

3.初始化GreenDao,初始化代码可以写在Application类或者新建一个管理类

  private DaoMaster.DevOpenHelper mHelper;
    private SQLiteDatabase db;
    private DaoMaster mDaoMaster;
    private DaoSession mDaoSession;
    //静态单例
    public static MyApp instances;

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

    public static MyApp getInstances() {
        return instances;
    }

    /**
     * 设置greenDao
     */
    private void setDatabase() {
        mHelper = new DaoMaster.DevOpenHelper(this, "sport-db", null);
        db = mHelper.getWritableDatabase();
        mDaoMaster = new DaoMaster(db);
        mDaoSession = mDaoMaster.newSession();
    }

    public DaoSession getDaoSession() {
        return mDaoSession;
    }

    public SQLiteDatabase getDb() {
        return db;
    }

4.获取UserDao对象

  mUserDao = MyApp.getInstances().getDaoSession().getUserDao();

5.保存记录

 mUser = new User(1,"tony",2);
 mUserDao.insert(mUser);//添加一条记录

6.查询记录

  List<User> users = mUserDao.loadAll();
                String userName = "";
                for (int i = 0; i < users.size(); i++) {
                    userName += users.get(i).getName()+",";
                }
                dbText.setText(userName);

相关文章

网友评论

      本文标题:GreenDao

      本文链接:https://www.haomeiwen.com/subject/ixtxzqtx.html