DatabaseHelper.java 源代码


package common;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import utils.HiLogcatUtil;

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final int DB_VERSION = 19;
    private static final String SQLCMD_ALTER_TABLE_ALARM = "ALTER TABLE device ADD dev_alarmState INTEGER";
    private static final String SQLCMD_ALTER_TABLE_PUSH = "ALTER TABLE device ADD dev_pushState INTEGER";
    private static final String SQLCMD_ALTER_TABLE_SERVER = "ALTER TABLE device ADD dev_serverData VARCHAR(30) NULL";
    private static final String SQLCMD_CREATE_TABLE_ALARM_EVENT = "CREATE TABLE alarm_event (_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT , dev_uid VARCHAR(20) NULL , time INTEGER ,type INTEGER  ) ";
    private static final String SQLCMD_CREATE_TABLE_DEVICE = "CREATE TABLE device(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, dev_nickname\t\t\tNVARCHAR(30) NULL, dev_uid\t\t\t\tVARCHAR(20) NULL, dev_name\t\t\t\tVARCHAR(30) NULL, dev_pwd\t\t\t\tVARCHAR(30) NULL, view_acc\t\t\t\tVARCHAR(30) NULL, view_pwd\t\t\t\tVARCHAR(30) NULL, event_notification \tINTEGER, ask_format_sdcard\t\tINTEGER,camera_channel\t\t\tINTEGER, snapshot\t\t\t\tBLOB,dev_videoQuality\t\t\t\tINTEGER,dev_alarmState INTEGER,dev_pushState INTEGER,dev_serverData VARCHAR(30) NULL,user VARCHAR(30) NULL,camera_level INTEGER);";
    private static final String SQLCMD_CREATE_TABLE_FOUR_LIVE = "CREATE TABLE four_live(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, groupId\t\t\t\tVARCHAR(30) NULL, groupName\t\t\t\tVARCHAR(30) NULL, camera1\t\t\t\tVARCHAR(30) NULL, camera2\t\t\t\tVARCHAR(30) NULL, camera3\t\t\t\tVARCHAR(30) NULL, camera4\t\t\t\tVARCHAR(30) NULL ,user VARCHAR(30) NULL);";
    private static final String SQLCMD_CREATE_TABLE_ONEKEY = "CREATE TABLE one_key(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, dev_uid\t\t\t\tVARCHAR(20) NULL, dev_company\t\t\t\tVARCHAR(30) NULL, dev_remark\t\t\t\tVARCHAR(30) NULL, add_time\t\t\t\tVARCHAR(30) NULL, amount\t\t\t\tVARCHAR(30) NULL, status \tINTEGER, reserve\t\t\tVARCHAR(30) NULL,order_no\t\t\tVARCHAR(30) NULL);";
    private static final String SQLCMD_CREATE_TABLE_RF_ALARM = "CREATE TABLE RF_alarm_evrnt(_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, time\t\t\ttext NOT NULL, dev_uid\t\ttext NOT NULL, );";
    private static final String SQLCMD_DROP_TABLE_DEVICE = "drop table if exists device;";
    public static final String TABLE_ALARM_EVENT = "alarm_event";
    public static final String TABLE_DEVICE = "device";
    private static final String TABLE_FOUR_LIVE = "four_live";
    public static final String TABLE_ONE_KEY = "one_key";
    public static final String TABLE_RF_ALARM_EVENT = "RF_alarm_evrnt";
    private static DatabaseHelper mInstance;

    public DatabaseHelper(Context context) {
        super(context, HiDataValue.DB_NAME, (SQLiteDatabase.CursorFactory) null, 19);
    }

    public static synchronized DatabaseHelper getInstance(Context context) {
        DatabaseHelper databaseHelper;
        synchronized (DatabaseHelper.class) {
            if (mInstance == null) {
                mInstance = new DatabaseHelper(context);
            }
            databaseHelper = mInstance;
        }
        return databaseHelper;
    }

    public static synchronized void destoryInstance() {
        synchronized (DatabaseHelper.class) {
            DatabaseHelper databaseHelper = mInstance;
            if (databaseHelper != null) {
                databaseHelper.close();
            }
        }
    }

    @Override
    public void onCreate(SQLiteDatabase sQLiteDatabase) {
        sQLiteDatabase.execSQL(SQLCMD_CREATE_TABLE_DEVICE);
        sQLiteDatabase.execSQL(SQLCMD_CREATE_TABLE_ALARM_EVENT);
        sQLiteDatabase.execSQL(SQLCMD_CREATE_TABLE_ONEKEY);
        sQLiteDatabase.execSQL(SQLCMD_CREATE_TABLE_FOUR_LIVE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase sQLiteDatabase, int i, int i2) {
        HiLogcatUtil.d("oldVersion: " + i + "---newVersion: " + i2);
        if (sQLiteDatabase.getVersion() <= 8) {
            sQLiteDatabase.execSQL(SQLCMD_ALTER_TABLE_ALARM);
            sQLiteDatabase.execSQL(SQLCMD_ALTER_TABLE_PUSH);
        }
        if (sQLiteDatabase.getVersion() <= 9) {
            sQLiteDatabase.execSQL(SQLCMD_ALTER_TABLE_SERVER);
        }
        if (i2 == 17) {
            sQLiteDatabase.execSQL(SQLCMD_CREATE_TABLE_ONEKEY);
        }
        if (i2 == 18) {
            sQLiteDatabase.execSQL(SQLCMD_CREATE_TABLE_FOUR_LIVE);
        }
        if (i2 == 19) {
            sQLiteDatabase.execSQL("ALTER TABLE device ADD COLUMN user VARCHAR(30) NOT NULL default \"\"");
            sQLiteDatabase.execSQL("ALTER TABLE device ADD COLUMN camera_level INTEGER(4) NOT NULL default 1");
            sQLiteDatabase.execSQL("ALTER TABLE four_live ADD COLUMN user VARCHAR(30) NOT NULL default \"\"");
        }
    }

    @Override
    public void onDowngrade(SQLiteDatabase sQLiteDatabase, int i, int i2) {
        super.onDowngrade(sQLiteDatabase, i, i2);
    }
}