1.插入方法
db.inter(table,nullColumnHack,values)
db.inter(表名,列名,值)
1.table 表名不用介绍了
2.values值吗就是ContentValues类
你可以new一个ContentValues类 用put(“列名”,值)方法添加
列名是干什么的呢 当你插入的值为空时 会用到这个东西 他会指定列名
3.nullColumnHack 列名
这个东西有点绕,基本意思就是当你插入的values为空时,他就会被用到,他会指定你的列名值为null,然后在后续的列名的值为空。
我们假设有一个表
一 | 二 |
---|---|
表名 | 女神list |
属性一 | 女神姓名 |
属性二 | 女神QQ |
属性三 | 女神电话 |
比如你 db.inter(“女神list”,”女神QQ”,values),假如values是空的,那么他会先在女神的QQ栏上填上null,然后再插入values,也就是把其他的都变为null
2.删除方法
db.delete(table,whereClause,whereArgs)
db.delete(表名,条件,where中的占位符提供具体值)
1.table表名略
2.whereClause 条件
这里填上你想要的约束条件例如 我要删除姓名为张三的人
代码就是 "name = ?" 你问我张三呢 别急看下面
3.whereArgs where中的占位符提供具体值
继续上面的问题 张三应该放在哪里呢
代码就是 new String[] {"张三"}
例子
db.delete("市民","name = ?",new String[] {"张三"});
3.更新方法
db.delete(table,values,whereClause,whereArgs)
db.delete(表名,值,条件,where中的占位符提供具体值)
1.table表名略
2.值
你里只需要put你需要的改变参数就可以了,没有填的属性,他不会去改变的,例如张三说我名字不好听,我要换换成:张强
那你只需要填写
values.put("name","张强");
3.whereClause 条件
这里填上你想要的约束条件例如
代码就是 "name = ?"
4.whereArgs where中的占位符提供具体值
代码就是 new String[] {"张三"}
例子
db.delete("市民",values,"name = ?",new String[] {"张三"});
4.查询
db.query(表名,列名,约束条件,where中的占位符提供具体值,指定需要group by的列,对group by 后的结果进一步约束,指定查询结果的排序方式)
我大致列一下,这个需要你自己去看数据库的书,一般只要前面3个后面三个可以填null
1.表名
2.列名
3.约束条件
4.指定需要group by的列
5.对group by 后的结果进一步约束
6.指定查询结果的排序方式
他会返回一个Cursor游标
Cursor的常用方法
函数名称 | 作用 |
---|---|
getCount() | 获取记录条数 |
isFirst() | 判断是否是最后一条 |
isLast() | 判断是否是费一条 |
moveToFirst() | 移动到第一跳 成功返回true |
moveToLast() | 移动到最后一条 成功返回true |
move(int offset) | 移动到指定记录 成功返回true |
moveToNext() | 移动到下 成功返回true |
moveToPervious() | 移动到上一条 成功返回true |
getColumnIndex(String columnName) | 根据列名称获得列索引 返回int |
getColumnIndexOrTrow(String columnName) | 根据列名称获得列索引 返回int |
getInt(int columnIndex) | 获取指定列索引的int类型值 |
getString(int columnIndex) | 获取指定列索引的String类型值 |
getDouble(int columnIndex) | 获取指定列索引的Double类型值 |
void close() | 关闭资源 |
当然还有执行SQL的方法了
db.execSQL(sql)
db.rawQuery(sql,selectArgs)
性能优于前几个