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