public abstract class AbstractSQLManager {
public static final String TAG = AbstractSQLManager.class.getName();//名称
private static DatabaseHelper databaseHelper;
private static SQLiteDatabase sqliteDB;
public AbstractSQLManager() {
openDatabase(ECApplication.getInstance(), CCPAppManager.getVersionCode());
}
private void openDatabase(Context context, int databaseVersion) {
if (databaseHelper == null) {
databaseHelper = new DatabaseHelper(context,this , databaseVersion);
}
//DatabaseManager.initializeInstance(databaseHelper);
if (sqliteDB == null) {
sqliteDB = databaseHelper.getWritableDatabase();
//sqliteDB = DatabaseManager.getInstance().openDatabase();
}
}
public void destroy() {
try {
if (databaseHelper != null) {
databaseHelper.close();
}
closeDB();
} catch (Exception e) {
LogUtil.e(e.toString());
}
}
private void open(boolean isReadonly) {
if (sqliteDB == null) {
if (isReadonly) {
sqliteDB = databaseHelper.getReadableDatabase();
} else {
sqliteDB = databaseHelper.getWritableDatabase();/*DatabaseManager.getInstance().openDatabase()*/;
}
}
}
public final void reopen() {
closeDB();
open(false);
LogUtil.w("[SQLiteManager] reopen this db.");
}
private void closeDB() {
if (sqliteDB != null) {
//DatabaseManager.getInstance().closeDatabase();
sqliteDB.close();
sqliteDB = null;
}
}
protected final SQLiteDatabase sqliteDB() {
open(false);
return sqliteDB;
}