SQLiteOpenHelper的使用

一、SQLiteOpenHelper的使用说明:
   1、  SQLiteOpenHelper时一个抽象类,子类必须实现的方法:
*: onCreate(),数据库第一次被创建时调用,在里面可以执行创建表,初始化数据等
**:onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表。
 /**
     * 数据库第一次被创建时,调用,可以在里面执行创建表,初始化数据等操作
     * */
    @Override
    public void onCreate(SQLiteDatabase db) {

    }
    /**
     * 当数据库需要被更新的时候执行,例如删除久表,创建新表。
     *
     * */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

  2、得到SQLiteOPenHelper的实例,并打开数据库

       

 /**
     * 得到SQLiteOpenHelper的实例
     * */
    public static  synchronized  DBHelperTest getInstance(Context context){
        if(instance == null){
            instance = new DBHelperTest(context);
        }
        return instance;
    }
    /**
     * 打开数据库,依赖于OpenHelper实例
     * */
    public synchronized  void open(){
        if(instance != null){
            this.db = instance.getWritableDatabase();
        }
    }

  关闭数据库:

 /**
     * 关闭数据库
     * */
    public synchronized void close(){
        if(db != null){
            db.close();
        }
    }

  3、对数据库的常见操作(增删改查)

        *增加:

 /**
     * 插入数据
     *
     * @param table_name 表名称
     * @cv:要插入的值
     * @insert的第二个参数:当cv为空,会向表中查入一个除主键外,其他字段名不存在的一行,底层数据库是不允许的,这是需用第二个参数为各个字段命名,当cv不为空,该值设置为null
     **/
    public synchronized void insert(String table_name, ContentValues cv) {

        db.insert(table_name, null, cv);
    }

  删除

   

 /**
     * 删除方法
     * @table_name:表名
     */
    public void del(String table_name,int id) {
        if (db == null) {
            //获得SQLiteDatabase实例
            db = getWritableDatabase();
        }
        //执行删除
        db.delete(table_name, "_id=?", new String[]{String.valueOf(id)});
    }

  修改

/**
     * 修改数据
     *
     * @param table_name 表名称
     **/
    public synchronized void update(String table_name, ContentValues cv, String whereClause, String whereArgs[]) {
        db.update(table_name, cv, whereClause, whereArgs);
    }

  查询

/**
     * 查询数据
     *  public Cursor query(String table, String[] columns, String selection,
     *  String[] selectionArgs, String groupBy, String having,
      * String orderBy)
     *table:表名
     * columns:想要显示的列,若为空则返回所有列,不建议设置为空,如果不是返回所有列)
     * selection:声明要返回的行的要求,如果为空则返回表的所有行。)
     *selectionArgs:行对应的要求
     * groupBy:分组方式,若为空则不分组.
     * having:(having条件,若为空则返回全部(不建议))
     * orderBy:(排序方式,为空则为默认排序方式)
     * */
    public Cursor query(String table_name) {
        //获得SQLiteDatabase实例
        // SQLiteDatabase db = getWritableDatabase();
        //查询获得Cursor
        Cursor c = db.query(table_name, null, null, null, null, null, null);
        return c;
    }

  

          


/**
* 查询数据
* public Cursor query(String table, String[] columns, String selection,
* String[] selectionArgs, String groupBy, String having,
* String orderBy)
*table:表名
* columns:想要显示的列,若为空则返回所有列,不建议设置为空,如果不是返回所有列)
* selection:声明要返回的行的要求,如果为空则返回表的所有行。)
*selectionArgs:行对应的要求
* groupBy:分组方式,若为空则不分组.
* having:(having条件,若为空则返回全部(不建议))
* orderBy:(排序方式,为空则为默认排序方式)
* */
public Cursor query(String table_name) {
//获得SQLiteDatabase实例
// SQLiteDatabase db = getWritableDatabase();
//查询获得Cursor
Cursor c = db.query(table_name, null, null, null, null, null, null);
return c;
}
posted @ 2016-08-08 14:23  奔跑吧兔子  阅读(790)  评论(0编辑  收藏  举报