更新 CIMCacheToolkit.java

This commit is contained in:
远方夕阳 2016-12-22 14:52:01 +08:00
parent 0b1c021af2
commit 98b9298e60

View File

@ -1,130 +1,141 @@
/** /**
* probject:cim-android-sdk * probject:cim-android-sdk
* @version 2.1.0 * @version 2.1.0
* *
* @author 3979434@qq.com * @author 3979434@qq.com
*/ */
package com.farsunset.cim.sdk.android; package com.farsunset.cim.sdk.android;
import android.content.Context; import android.content.Context;
import android.database.Cursor; import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteOpenHelper;
class CIMCacheToolkit extends SQLiteOpenHelper { class CIMCacheToolkit extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "CIM_CONFIG_INFO.db"; private static final String DATABASE_NAME = "CIM_CONFIG_INFO.db";
private static final int DATABASE_VERSION = 20160416; private static final int DATABASE_VERSION = 20160416;
private static final String TABLE_SQL = "CREATE TABLE IF NOT EXISTS T_CIM_CONFIG (KEY VARCHAR(64) PRIMARY KEY,VALUE TEXT)"; private static final String TABLE_SQL = "CREATE TABLE IF NOT EXISTS T_CIM_CONFIG (KEY VARCHAR(64) PRIMARY KEY,VALUE TEXT)";
private static final String DELETE_SQL = "DELETE FROM T_CIM_CONFIG WHERE KEY = ?"; private static final String DELETE_SQL = "DELETE FROM T_CIM_CONFIG WHERE KEY = ?";
private static final String SAVE_SQL = "INSERT INTO T_CIM_CONFIG (KEY,VALUE) VALUES(?,?)"; private static final String SAVE_SQL = "INSERT INTO T_CIM_CONFIG (KEY,VALUE) VALUES(?,?)";
private static final String QUERY_SQL = "SELECT VALUE FROM T_CIM_CONFIG WHERE KEY = ?"; private static final String QUERY_SQL = "SELECT VALUE FROM T_CIM_CONFIG WHERE KEY = ?";
public static final String CIM_CONFIG_INFO = "CIM_CONFIG_INFO"; public static final String CIM_CONFIG_INFO = "CIM_CONFIG_INFO";
public static final String KEY_ACCOUNT = "KEY_ACCOUNT"; public static final String KEY_ACCOUNT = "KEY_ACCOUNT";
public static final String KEY_MANUAL_STOP = "KEY_MANUAL_STOP"; public static final String KEY_MANUAL_STOP = "KEY_MANUAL_STOP";
public static final String KEY_CIM_DESTROYED = "KEY_CIM_DESTROYED"; public static final String KEY_CIM_DESTROYED = "KEY_CIM_DESTROYED";
public static final String KEY_CIM_SERVIER_HOST = "KEY_CIM_SERVIER_HOST"; public static final String KEY_CIM_SERVIER_HOST = "KEY_CIM_SERVIER_HOST";
public static final String KEY_CIM_SERVIER_PORT = "KEY_CIM_SERVIER_PORT"; public static final String KEY_CIM_SERVIER_PORT = "KEY_CIM_SERVIER_PORT";
public static final String KEY_CIM_CONNECTION_STATE = "KEY_CIM_CONNECTION_STATE"; public static final String KEY_CIM_CONNECTION_STATE = "KEY_CIM_CONNECTION_STATE";
private static CIMCacheToolkit toolkit;
static CIMCacheToolkit toolkit; private SQLiteDatabase mSQLiteDatabase;
public static CIMCacheToolkit getInstance(Context context){ public synchronized static CIMCacheToolkit getInstance(Context context){
if (toolkit==null){ if (toolkit==null){
toolkit = new CIMCacheToolkit(context); toolkit = new CIMCacheToolkit(context);
} }
return toolkit; return toolkit;
} }
public CIMCacheToolkit(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
} public CIMCacheToolkit(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
public CIMCacheToolkit(Context context){ }
this(context, DATABASE_NAME,null, DATABASE_VERSION);
} public CIMCacheToolkit(Context context){
this(context, DATABASE_NAME,null, DATABASE_VERSION);
}
public void remove(String key)
{
SQLiteDatabase database = toolkit.getWritableDatabase(); public synchronized void remove(String key)
database.execSQL(DELETE_SQL,new String[]{key}); {
database.close(); getSQLiteDatabase().execSQL(DELETE_SQL,new String[]{key});
toolkit.close(); }
toolkit = null;
}
public synchronized void putString(String key,String value)
{
public void putString(String key,String value) getSQLiteDatabase().execSQL(DELETE_SQL,new String[]{key});
{ getSQLiteDatabase().execSQL(SAVE_SQL, new String[]{key, value});
SQLiteDatabase database = toolkit.getWritableDatabase();
database.execSQL(DELETE_SQL,new String[]{key}); }
database.execSQL(SAVE_SQL, new String[]{key, value});
database.close(); public synchronized String getString(String key)
{
toolkit.close(); String value = null;
toolkit = null; Cursor cursor = getSQLiteDatabase().rawQuery(QUERY_SQL, new String[]{key});
if (cursor!=null&&cursor.moveToFirst())
} {
value = cursor.getString(0);
public String getString(String key) cursor.close();
{ }
String value = null;
SQLiteDatabase database = toolkit.getWritableDatabase();
Cursor cursor = database.rawQuery(QUERY_SQL, new String[]{key});
if (cursor!=null&&cursor.moveToFirst()) return value;
{ }
value = cursor.getString(0);
} public void putBoolean(String key,boolean value)
{
cursor.close(); putString(key,Boolean.toString(value));
database.close(); }
toolkit.close();
toolkit = null; public boolean getBoolean(String key)
{
return value; String value = getString(key);
} return value == null?false:Boolean.parseBoolean(value);
}
public void putBoolean(String key,boolean value)
{
putString(key,Boolean.toString(value)); public void putInt(String key,int value)
} {
putString(key, String.valueOf(value));
public boolean getBoolean(String key) }
{
String value = getString(key); public int getInt(String key)
return value == null?false:Boolean.parseBoolean(value); {
} String value = getString(key);
return value == null?0:Integer.parseInt(value);
}
public void putInt(String key,int value)
{ @Override
putString(key, String.valueOf(value)); public void onCreate(SQLiteDatabase database) {
} database.execSQL(TABLE_SQL);
}
public int getInt(String key)
{
String value = getString(key); public static synchronized void destroy(){
return value == null?0:Integer.parseInt(value); if (toolkit!=null){
} try{toolkit.mSQLiteDatabase.close();}catch(Exception e){}
try{toolkit.close();}catch(Exception e){}
@Override }
public void onCreate(SQLiteDatabase database) {
database.execSQL(TABLE_SQL); }
}
@Override private SQLiteDatabase getSQLiteDatabase(){
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) { if(mSQLiteDatabase!=null){
return mSQLiteDatabase;
} }else
} {
mSQLiteDatabase = getWritableDatabase();
}
return mSQLiteDatabase;
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
}
}