美文网首页
Android项目接入greendao步骤(4步)

Android项目接入greendao步骤(4步)

作者: 墨韵 | 来源:发表于2022-03-03 12:54 被阅读0次

    1.添加依赖

    路径:app/build.gradle

    apply plugin: 'org.greenrobot.greendao' // #1 apply plugin
    android {
    
        // #2 greendao配置
        greendao {
            //数据库版本号,升级时修改
            schemaVersion 2
            //生成的DAO,DaoMaster和DaoSession的包路径。默认与表实体所在的包路径相同
            daoPackage 'com.demo.greendao'
            //生成源文件的路径。默认源文件目录是在build目录中的(build/generated/source/greendao)
            targetGenDir 'src/main/java'
        }
    }
    dependencies {
        // #3 引入grenndao数据库,存储数据
        implementation 'org.greenrobot:greendao:3.3.0' // add library
    }
    

    2.定义实体类

    @Entity
    public class AppInfo {
    
        @Id(autoincrement = true)
        public Long id;
        @NotNull
        @Unique
        public String packageName;// 包名
        public String comment;// 备注
    }
    

    点击按钮Make Project按钮,自动生成3个java文件到src/main/java/com/demo/greendao路径下:

    • AppInfoDao.java
    • DaoMaster.java
    • DaoSession.java
    Make Project

    3.数据库初始化

    public class BaseApplication extends Application {
        protected static BaseApplication baseApplication = null;
        public DaoSession daoSession;// daoSession变量
    
        public BaseApplication() {
        }
    
        public static BaseApplication getInstance() {
            if (baseApplication == null) {
                baseApplication = new BaseApplication();
            }
    
            return baseApplication;
        }
        @Override
        public void onCreate() {
            super.onCreate();
            baseApplication = this;
            initDB(); // 初始化数据库
        }
    
        private void initDB() {
            DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this, "app_info.db"); //建库
            DaoMaster daoMaster = new DaoMaster(devOpenHelper.getWritableDatabase());
            daoSession = daoMaster.newSession(); //得到daoSession对象
        }
    
    

    4.定义数据库操作帮助类

    public class DBHelper {
    
        private final AppInfoDao appInfoDao;
    
        private DBHelper() {
            appInfoDao = BaseApplication.getInstance().daoSession.getAppInfoDao();
        }
    
        private static class LazyHolder {
            private static final DBHelper INSTANCE = new DBHelper();
        }
    
        public static DBHelper getInstance() {
            return LazyHolder.INSTANCE;
        }
    
        /**
         * 添加或者更新数据
         * @param info
         */
        public void insertOrReplace(final AppInfo info) {
            AsyncTask.execute(new Runnable() {
                @Override
                public void run() {
                    appInfoDao.insertOrReplace(info);
                }
            });
        }
    }
    

    使用

    public void insertAppInfo() {
        DBHelper.getInstance().insertOrReplace(new AppInfo("com.tencent.mm", "comment"));
    }
    

    完!

    相关文章

      网友评论

          本文标题:Android项目接入greendao步骤(4步)

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