先上图:
使用流程:
1、
①在App的build.gradle文件内添加内容进行配置
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao'
android {
...
greendao{
schemaVersion 1 //数据库版本号,升级数据库需要修改版本号
daoPackage'com.xiaopao.greendao.gen' //一般为app包名+生成文件的文件夹名
targetGenDir 'src/main/java' //自动生成的greendao代码存放路径
}
}
dependencies {
...
compile 'org.greenrobot:greendao:3.2.2' // add library
compile 'org.greenrobot:greendao-generator:3.2.2'
}
②在项目的build.gradle文件内添加内容进行配置
buildscript { repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin }
2、数据库初始化管理类(初始化时直接调用)
public class DbManager {
public static final boolean ENCRYPTED = true; // 是否加密
private static final String DB_NAME = "Wallet.db"; //数据库名
private static DbManager mDbManager;
private static DaoMaster.DevOpenHelper mDevOpenHelper; // 需要升级时用MySQLiteOpenHelper替换DaoMaster.DevOpenHelper,保障更新版本时保存老数据
private static DaoMaster mDaoMaster;
private static DaoSession mDaoSession;
private Context mContext;
private DbManager(Context context) {
this.mContext = context; // 初始化数据库信息
mDevOpenHelper = new DaoMaster.DevOpenHelper(context, DB_NAME);
getDaoMaster(context);
getDaoSession(context);
}
public static DbManager getInstance(Context context) {
if (null == mDbManager) {
synchronized (DbManager.class) {
if (null == mDbManager) {
mDbManager = new DbManager(context); } } }
return mDbManager;
}
/** * 获取可读数据库 *
* @param context
* @return */
public static SQLiteDatabase getReadableDatabase(Context context) {
if (null == mDevOpenHelper) {
getInstance(context); }
return mDevOpenHelper.getReadableDatabase();
}
/** * 获取可写数据库 *
* @param context
* @return */
public static SQLiteDatabase getWritableDatabase(Context context) {
if (null == mDevOpenHelper) { getInstance(context); }
return mDevOpenHelper.getWritableDatabase();
}
/** * 获取DaoMaster *
* 判断是否存在数据库,如果没有则创建数据库
* @param context
* @return */
public static DaoMaster getDaoMaster(Context context) {
if (null == mDaoMaster) { synchronized (DbManager.class) {
if (null == mDaoMaster) {
//升级对应的代码,请关注下面的一个类
MyOpernHelper helper = new MyOpernHelper(context,DB_NAME,null);
mDaoMaster = new DaoMaster(helper.getWritableDatabase()); } } }
return mDaoMaster;
}
/** * 获取DaoSession *
* @param context
* @return */
public static DaoSession getDaoSession(Context context) {
if (null == mDaoSession) {
synchronized (DbManager.class) {
mDaoSessio