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;
}