package eVVM.apk.db.nrcreportdb; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import greendao.DaoMaster; import greendao.DaoSession; /** * Created by Android Studio. * User: zbb * Date: 2019/8/12 * Describe: NRCReportDbManager */ public class NRCReportDbManager { // 是否加密 public static final boolean ENCRYPTED = true; private static final String DB_NAME = "nrcreport.db"; private static NRCReportDbManager mDbManager; private static DaoMaster.DevOpenHelper mDevOpenHelper; private static DaoMaster mDaoMaster; private static DaoSession mDaoSession; private Context mContext; private NRCReportDbManager(Context context) { this.mContext = context; // 初始化数据库信息 mDevOpenHelper = new DaoMaster.DevOpenHelper(context, DB_NAME); getDaoMaster(context); getDaoSession(context); } public static NRCReportDbManager getInstance(Context context) { if (null == mDbManager) { synchronized (NRCReportDbManager.class) { if (null == mDbManager) { mDbManager = new NRCReportDbManager(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 (NRCReportDbManager.class) { if (null == mDaoMaster) { mDaoMaster = new DaoMaster(getWritableDatabase(context)); } } } return mDaoMaster; } /** * 获取DaoSession * * @param context * @return */ public static DaoSession getDaoSession(Context context) { if (null == mDaoSession) { synchronized (NRCReportDbManager.class) { mDaoSession = getDaoMaster(context).newSession(); } } return mDaoSession; } }