SQLiteDatabase 及 ContentProvider 笔记

来源:互联网 发布:北交大知行平台注册 编辑:程序博客网 时间:2024/06/06 19:12

SQLiteDatabase 部分

SQLiteDatabase 对象的获取:

SQLiteDatabase db = dbHelper.getWriteableDatabase();
其中,dbHelper 是继承 SQLiteOpenHelper  帮助类的子类的一个实例对象

CRUD 操作:(C:Create,R:Retrieve,U:Update,D:Delete)

db.insert(),添加数据

long insert (String table,                 String nullColumnHack,                 ContentValues values)

接收3个参数:

①表名

②用于在未指定添加数据的情况下给某些可为空的列自动赋值 NULL ,一般用不到,传入 null 即可

③一个 ContentValues 对象,它提供一系列的 put() 方法重载,用于向 ContentValues 中添加数据

返回值:最近插入的行的 id 号

db.update(),更新数据

int update (String table,                 ContentValues values,                 String whereClause,                 String[] whereArgs)
接收4个参数:

①表名

②ContentValues 对象

③④用于约束更新某一行或某几行的数据,不指定则默认更新所有行

返回值:受影响的行数

db.delete(),删除数据

int delete (String table,                 String whereClause,                 String[] whereArgs)

接收3个参数:

①表名

②③用于约束删除某一行或某几行的数据,不指定默认删除所有行

返回值:返回的是受影响的行数(是符合删除条件的),0 (删除操作失败)

db.query(),查询数据

Cursor query (String table,                 String[] columns,                 String selection,                 String[] selectionArgs,                 String groupBy,                 String having,                 String orderBy)

最少接收7个参数:

①表名

②指定查询哪几列,不指定默认查询所有列

③④用于约束查询某一行或哪几行的数据,不指定则默认查询所有行

⑤用于指定需要去 group by 的列,不指定则表示不对查询结果进行 group by 操作

⑥对 group by 之后的数据进一步过滤,不指定则不进行过滤

⑦指定查询结果的排序方式,不指定则表示使用默认的排序方式

返回值:一个 Cursor 对象



ContentProvider 部分

ContentProvider 的6个方法的返回值:

1、onCreate()

返回 true 表示内容提供者初始化成功,返回 faulse 表示失败

2、query()

查询结果存放在 Cursor 对象中并返回

3、insert()

返回一个用于表示这条新记录的 URI

4、update()

返回受影响的行数

5、delete()

返回被删除的行数

6、getType()

返回 URI 相应的 MIME 类型

①必须以 vnd 开头

②如果内容 URI 以路径结尾,则后接 android.cursor.dir/

如果内容 URI 以 id 结尾,则后接 android.cursor.item/

③最后接上 vnd.<authority>.<path>          //<authority>和<path>用自己的值代替

例:vnd.android.cursor.dir/vnd.com.example.app.provider.table1


UriMatcher.addURI() 

void addURI (String authority,                 String path,                 int code)

接收3个参数,分别传入 authority、path 和一个自定义代码。当 URI 匹配时返回该自定义码

0 0