package com.shejiaomao.weibo.db;
import com.shejiaomao.maobo.R;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import com.cattong.commons.Logger;
import com.shejiaomao.widget.SQLiteOpenHelper;
/**
* DBHelper
*
*/
public class DBHelper extends SQLiteOpenHelper {
private static final int DB_VERSION = 60;
private static final String DB_NAME = "shejiaomao.db";
private String[] createSQL = null;
private String[] destroySQL = null;
private static DBHelper dbHelper;
public static synchronized DBHelper getInstance(Context context){
if (dbHelper == null) {
dbHelper = new DBHelper(context);
}
return dbHelper;
}
private DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
initSQL(context);
}
private void initSQL(Context context) {
createSQL = context.getResources().getStringArray(R.array.db_create_sql);
destroySQL = context.getResources().getStringArray(R.array.db_destroy_sql);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
for (int i = 0; i < createSQL.length; i++) {
sqLiteDatabase.execSQL(createSQL[i]);
}
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) {
if (newVersion > oldVersion) {
execSQLs(sqLiteDatabase, destroySQL);
execSQLs(sqLiteDatabase, createSQL);
}
}
private void execSQLs(SQLiteDatabase sqLiteDatabase, String[] sqls) {
if (sqls != null && sqls.length > 0) {
for (int i = 0; i < sqls.length; i++) {
if (Logger.isDebug()) {
Log.d("EXECSQL", sqls[i]);
}
sqLiteDatabase.execSQL(sqls[i]);
}
}
}
@Override
protected void finalize() throws Throwable {
if (dbHelper != null) {
dbHelper.close();
dbHelper = null;
}
super.finalize();
}
}