使用原生的Sql语句增删改使用execSql() 查询使用rawquery() 返回cursor类型
例如
1 向Info表中增加数据
insert into Info(name,phone)values('张三','15467893152'); 指定列添加数值
一般不写死 采用以下写法(execSql方法参数)
db.execSql("insert into Info(name,phone)values(?,?)",new Object[]{"张三","123465697752"})
第二个参数为object数组 采用? 占位符的方法
2 修改数据update
update Info set phone='1234567890' where name='张三'
3 查询select
select name,phone from Info
4 delete 删除
delete from Info where name=‘王五’(不带where会删除所有信息)
删除也可以使用占位符的形式
注 数据库官方要求是使用过要关闭 (但是频繁打开关闭不好 有的公司要求不关闭)
注 增删改都可以使用db.execSql();但是查找不可以 返回数据需要处理
使用db.rawQuery("sql查询语句",占位符没有可以设为null); 和上面的类似 此函数返回Cursor对象
Cursor 游标的api: 使用过后关闭 (代码规范)
moveToFirst()返回boolean 移动到第一行
moveToLast()返回boolean 移动到末行
moveToNext() 返回boolean 移动到下一行 (一般while循环移动)
getCount()返回行数
getColumnCount ()返回列数
内置的数据库底层不区分数据类型 都为String
假如 info 表 字段 id为integer 你取数值可以直接getString()
cursor.getString(int index) 接受参数列的索引(索引从0开始)
moveToNext() 确定行 只需指定列就可以得到想要的数值
使用Sql语句缺点:
1 语句容易出错
2 执行语句没有返回值不容易判断
网友评论