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
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"));
}
完!
网友评论