package com.diandi.demo.db; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; /** * ******************************************************************************* * ********* Author : klob(kloblic@gmail.com) . * ********* Date : 2014-11-29 . * ********* Time : 11:46 . * ********* Project name : Diandi1.18 . * ********* Version : 1.0 * ********* Copyright @ 2014, klob, All Rights Reserved * ******************************************************************************* */ public class DBHelperC extends SQLiteOpenHelper { public static final String DATA_BASE_NAME = "diandi_db"; public static final int DATA_BASE_VERSION = 1; public static final String TABLE_NAME = "fav"; private SQLiteDatabase mDb; public DBHelperC(Context context) { super(context, DATA_BASE_NAME, null, DATA_BASE_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteDatabase db) { onCreateFavTable(db); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } private void onCreateFavTable(SQLiteDatabase db) { StringBuilder favStr = new StringBuilder(); favStr.append("CREATE TABLE IF NOT EXISTS ") .append(DBHelperC.TABLE_NAME) .append(" ( ").append(FavTable._ID).append(" INTEGER PRIMARY KEY AUTOINCREMENT,") .append(FavTable.USER_ID).append(" varchar(100),") .append(FavTable.OBJECT_ID).append(" varchar(20),") .append(FavTable.IS_FAV) .append(" Integer,") .append(FavTable.IS_LOVE) .append(" Integer);"); db.execSQL(favStr.toString()); } /** * 获取数据库操作对象 * * @param isWrite 是否可写 * @return */ public synchronized SQLiteDatabase getDatabase(boolean isWrite) { if (mDb == null || !mDb.isOpen()) { if (isWrite) { try { mDb = getWritableDatabase(); } catch (Exception e) { // 当数据库不可写时 mDb = getReadableDatabase(); return mDb; } } else { mDb = getReadableDatabase(); } } // } catch (SQLiteException e) { // // 当数据库不可写时 // mDb = getReadableDatabase(); // } return mDb; } public int delete(String table, String whereClause, String[] whereArgs) { getDatabase(true); return mDb.delete(table, whereClause, whereArgs); } public long insert(String table, String nullColumnHack, ContentValues values) { getDatabase(true); return mDb.insertOrThrow(table, nullColumnHack, values); } public int update(String table, ContentValues values, String whereClause, String[] whereArgs) { getDatabase(true); return mDb.update(table, values, whereClause, whereArgs); } public Cursor rawQuery(String sql, String[] selectionArgs) { getDatabase(false); return mDb.rawQuery(sql, selectionArgs); } public void execSQL(String sql) { getDatabase(true); mDb.execSQL(sql); } public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, // final String orderBy) { getDatabase(false); return mDb.query(table, columns, selection, selectionArgs, groupBy, having, orderBy); } interface FavTable { String _ID = "_id"; String USER_ID = "userid"; String OBJECT_ID = "objectid"; String IS_LOVE = "islove"; String IS_FAV = "isfav"; } }