美文网首页
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