/** * * @ClassName: DataBaseOpenHelper * @Description: 数据库工具类 * */public class DataBaseOpenHelper extends SQLiteOpenHelper {    private static Map dbMaps = new HashMap();    private OnSqliteUpdateListener onSqliteUpdateListener;    /**     * 建表语句列表     */    private List createTableList;    private String nowDbName;     private DataBaseOpenHelper(Context context, String dbName, int dbVersion, List tableSqls) {        super(context, dbName, null, dbVersion);        nowDbName = dbName;        createTableList = new ArrayList();        createTableList.addAll(tableSqls);    }     /**     *     * @Title: getInstance     * @Description: 获取数据库实例     * @param @param context     * @param @param userId     * @param @return     * @return DataBaseOpenHelper     * @author lihy     */    public static DataBaseOpenHelper getInstance(Context context, String dbName, int dbVersion, List tableSqls) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(dbName);        if (dataBaseOpenHelper == null) {            dataBaseOpenHelper = new DataBaseOpenHelper(context, dbName, dbVersion, tableSqls);        }        dbMaps.put(dbName, dataBaseOpenHelper);        return dataBaseOpenHelper;    };     @Override    public void onCreate(SQLiteDatabase db) {        for (String sqlString : createTableList) {            db.execSQL(sqlString);        }    }         /**     *     * @Title: execSQL     * @Description: Sql写入     * @param @param sql     * @param @param bindArgs     * @return void     * @author lihy     */    public void execSQL(String sql, Object[] bindArgs) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getWritableDatabase();            database.execSQL(sql, bindArgs);        }    }     /**     *     * @Title: rawQuery     * @Description:     * @param @param sql查询     * @param @param bindArgs     * @param @return     * @return Cursor     * @author lihy     */    public Cursor rawQuery(String sql, String[] bindArgs) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getReadableDatabase();            Cursor cursor = database.rawQuery(sql, bindArgs);            return cursor;        }    }     /**     *     * @Title: insert     * @Description: 插入数据     * @param @param table     * @param @param contentValues 设定文件     * @return void 返回类型     * @author lihy     * @throws     */    public void insert(String table, ContentValues contentValues) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getWritableDatabase();            database.insert(table, null, contentValues);        }    }     /**     *     * @Title: update     * @Description: 更新     * @param @param table     * @param @param values     * @param @param whereClause     * @param @param whereArgs 设定文件     * @return void 返回类型     * @throws     */    public void update(String table, ContentValues values, String whereClause, String[] whereArgs) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getWritableDatabase();            database.update(table, values, whereClause, whereArgs);        }    }    /**     *     * @Title: delete     * @Description:删除     * @param @param table     * @param @param whereClause     * @param @param whereArgs     * @return void     * @author lihy     */    public void delete(String table, String whereClause, String[] whereArgs) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getWritableDatabase();            database.delete(table, whereClause, whereArgs);        }    }     /**     *     * @Title: query     * @Description: 查     * @param @param table     * @param @param columns     * @param @param selection     * @param @param selectionArgs     * @param @param groupBy     * @param @param having     * @param @param orderBy     * @return void     * @author lihy     */    public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having,            String orderBy) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getReadableDatabase();            // Cursor cursor = database.rawQuery("select * from "            // + TableName.TABLE_NAME_USER + " where userId =" + userId, null);            Cursor cursor = database.query(table, columns, selection, selectionArgs, groupBy, having, orderBy);            return cursor;        }    }    /**     *     * @Description:查     * @param table     * @param columns     * @param selection     * @param selectionArgs     * @param groupBy     * @param having     * @param orderBy     * @param limit     * @return     * Cursor     * @exception:     * @author: lihy     * @time:2015-4-3 上午9:37:29     */    public Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having,            String orderBy,String limit) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getReadableDatabase();            // Cursor cursor = database.rawQuery("select * from "            // + TableName.TABLE_NAME_USER + " where userId =" + userId, null);            Cursor cursor = database.query(table, columns, selection, selectionArgs, groupBy, having, orderBy, limit);            return cursor;        }    }     /**     *     * @Description 查询,方法重载,table表名,sqlString条件     * @param @return     * @return Cursor     * @author lihy     */    public Cursor query(String tableName, String sqlString) {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        synchronized (dataBaseOpenHelper) {            SQLiteDatabase database = dataBaseOpenHelper.getReadableDatabase();            Cursor cursor = database.rawQuery("select * from " + tableName + " " + sqlString, null);             return cursor;        }    }     /**     * @see android.database.sqlite.SQLiteOpenHelper#close()     */    public void clear() {        DataBaseOpenHelper dataBaseOpenHelper = dbMaps.get(nowDbName);        dataBaseOpenHelper.close();        dbMaps.remove(dataBaseOpenHelper);    }     /**     * onUpgrade()方法在数据库版本每次发生变化时都会把用户手机上的数据库表删除,然后再重新创建。
* 一般在实际项目中是不能这样做的,正确的做法是在更新数据库表结构时,还要考虑用户存放于数据库中的数据不会丢失,从版本几更新到版本几。(非 * Javadoc) * * @see android.database.sqlite.SQLiteOpenHelper#onUpgrade(android.database.sqlite * .SQLiteDatabase, int, int) */ @Override public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) { if (onSqliteUpdateListener != null) { onSqliteUpdateListener.onSqliteUpdateListener(db, arg1, arg2); } } public void setOnSqliteUpdateListener(OnSqliteUpdateListener onSqliteUpdateListener) { this.onSqliteUpdateListener = onSqliteUpdateListener; }}//数据库更新接口代码public interface OnSqliteUpdateListener { public void onSqliteUpdateListener(SQLiteDatabase db, int oldVersion, int newVersion);}

更多相关文章

  1. android > SMS 短信数据库访问
  2. Android SDK 历史版本
  3. 史上版本最全android源码下载地址
  4. android历史版本对应的api等级
  5. android---------ndk中的各个版本的下载地址。
  6. android sqilte3数据库大小的测试
  7. Android 取出 图片以字节形式存放到数据库的数据,并将图片显示
  8. android 建数据库 SQLite 存储sd 卡或者内存
  9. 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、St

随机推荐

  1. Android NDK介绍
  2. Android SDK Samples,学习Android的好方法
  3. android中Webview与javascript的交互(互相
  4. Android通过WebView实现office文档在线预
  5. Android利用ant将多个jar包合并成一个jar
  6. 项目总结
  7. Android基础和运行机制
  8. android usb主从设备模式解析,网络连接调
  9. Android ADB安装和卸载或删除Android设备
  10. Android应用程序及其主要结构