/** * 创建FinalDb * * @param context * @param dbName 数据库名称 */ public static FinalDb create(Context context, String targetDirectory, String dbName) { DaoConfig config = new DaoConfig(); config.setContext(context); config.setDbName(dbName); config.setTargetDirectory(targetDirectory); return create(config); }
private static synchronized DbUtils getInstance(DaoConfig daoConfig) { DbUtils dao = daoMap.get(daoConfig.getDbName()); if (dao == null) { dao = new DbUtils(daoConfig); daoMap.put(daoConfig.getDbName(), dao); } else { dao.daoConfig = daoConfig; } // update the database if needed SQLiteDatabase database = dao.database; int oldVersion = database.getVersion(); int newVersion = daoConfig.getDbVersion(); if (oldVersion != newVersion) { if (oldVersion != 0) { DbUpgradeListener upgradeListener = daoConfig.getDbUpgradeListener(); if (upgradeListener != null) { upgradeListener.onUpgrade(dao, oldVersion, newVersion); } else { try { dao.dropDb(); } catch (DbException e) { LogUtils.e(e.getMessage(), e); } } } database.setVersion(newVersion); } return dao; }
/** * 创建 FinalDb * * @param context * @param dbName 数据库名称 * @param isDebug 是否为debug模式(debug模式进行数据库操作的时候将会打印sql语句) */ public static FinalDb create(Context context, String dbName, boolean isDebug) { DaoConfig config = new DaoConfig(); config.setContext(context); config.setDbName(dbName); config.setDebug(isDebug); return create(config); }
/** * 使用以后的数据库,将assets的数据库拷贝到内存卡 * * @param context * @param type 1||0 FinalDb.CopyDb */ public static FinalDb create(Context context, int type, String dbName) { DaoConfig config = new DaoConfig(); config.setContext(context); config.setType(type); config.setDbName(dbName); return create(config); }
public static DbUtils create( Context context, String dbName, int dbVersion, DbUpgradeListener dbUpgradeListener) { DaoConfig config = new DaoConfig(context); config.setDbName(dbName); config.setDbVersion(dbVersion); config.setDbUpgradeListener(dbUpgradeListener); return getInstance(config); }
private static synchronized FinalDb getInstance(DaoConfig daoConfig) { FinalDb dao = daoMap.get(daoConfig.getDbName()); if (dao == null) { dao = new FinalDb(daoConfig); daoMap.put(daoConfig.getDbName(), dao); } return dao; }
private SQLiteDatabase createDatabase(DaoConfig config) { SQLiteDatabase result = null; String dbDir = config.getDbDir(); if (!TextUtils.isEmpty(dbDir)) { File dir = new File(dbDir); if (dir.exists() || dir.mkdirs()) { File dbFile = new File(dbDir, config.getDbName()); result = SQLiteDatabase.openOrCreateDatabase(dbFile, null); } } else { result = config.getContext().openOrCreateDatabase(config.getDbName(), 0, null); } return result; }
/** * @param context 上下文 * @param targetDirectory db文件路径,可以配置为sdcard的路径 * @param dbName 数据库名字 * @param isDebug 是否是调试模式:调试模式会log出sql信息 * @param dbVersion 数据库版本信息 * @param dbUpdateListener数据库升级监听器 :如果监听器为null,升级的时候将会清空所所有的数据 * @return */ public static FinalDb create( Context context, String targetDirectory, String dbName, boolean isDebug, int dbVersion, DbUpdateListener dbUpdateListener) { DaoConfig config = new DaoConfig(); config.setContext(context); config.setTargetDirectory(targetDirectory); config.setDbName(dbName); config.setDebug(isDebug); config.setDbVersion(dbVersion); config.setDbUpdateListener(dbUpdateListener); return create(config); }
public static DbUtils create(Context context, String dbDir, String dbName) { DaoConfig config = new DaoConfig(context); config.setDbDir(dbDir); config.setDbName(dbName); return getInstance(config); }
/** * 创建FinalDb * * @param context */ public static FinalDb create(Context context) { DaoConfig config = new DaoConfig(); config.setContext(context); return create(config); }
private void debugSql(String sql) { if (config != null && config.isDebug()) android.util.Log.d("Debug SQL", ">>>>>> " + sql); }
private FinalDb(DaoConfig config) { if (config == null) throw new DbException("daoConfig is null"); if (config.getContext() == null) throw new DbException("android context is null"); if (config.type == 1) { File file = new File(config.getContext().getFilesDir(), config.getDbName()); if (!file.exists()) { // 拷贝数据库 try { InputStream is = config.getContext().getAssets().open(config.getDbName()); Utils.copyFile(is, file); } catch (Exception e) { e.printStackTrace(); } } this.db = SQLiteDatabase.openOrCreateDatabase(file, null); } else if (config.getTargetDirectory() != null && config.getTargetDirectory().trim().length() > 0 && config.type != 1) { this.db = createDbFileOnSDCard(config.getTargetDirectory(), config.getDbName()); } else { this.db = new SqliteDbHelper( config.getContext().getApplicationContext(), config.getDbName(), config.getDbVersion(), config.getDbUpdateListener()) .getWritableDatabase(); } this.config = config; }