博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android Pro] 完美Android Cursor使用例子(Android数据库操作)
阅读量:5824 次
发布时间:2019-06-18

本文共 1826 字,大约阅读时间需要 6 分钟。

reference to : http://www.ablanxue.com/prone_10575_1.html

完美 Android Cursor使用例子(Android数据库操作),Android 使用的数据库是SQLite数据库,对于数据库记录的操作,可以使用Cursor(游标)来进行。

1. 关于 Cursor 

在你理解和使用 Android Cursor 的时候你必须先知道关于 Cursor 的几件事情: 
Cursor 是每行的集合。 
使用 moveToFirst() 定位第一行。 
你必须知道每一列的名称。 
你必须知道每一列的数据类型。 
Cursor 是一个随机的数据源。 
所有的数据都是通过下标取得。 
Cursor 位于 .database.Cursor类,可见出它的设计是基于数据库服务产生的。 
在Android 查询数据是通过Cursor 类来实现的。当我们使用 SQLiteDatabase.query()方法时,就会得到Cursor对象, Cursor所指向的就是每一条数据。

2. 关于 Cursor 的重要方法: 

close() 
关闭游标,释放资源 
copyStringToBuffer(int columnIndex, CharArrayBuffer buffer) 
在缓冲区中检索请求的列的文本,将将其存储 
getColumnCount() 
返回所有列的总数 
getColumnIndex(String columnName) 
返回指定列的名称,如果不存在返回-1 
getColumnIndexOrThrow(String columnName) 
从零开始返回指定列名称,如果不存在将抛出IllegalArgumentException 异常。 
getColumnName(int columnIndex) 
从给定的索引返回列名 
getColumnNames() 
返回一个字符串数组的列名 
getCount() 
返回Cursor 中的行数 
moveToFirst() 
移动光标到第一行 
moveToLast() 
移动光标到最后一行 
moveToNext() 
移动光标到下一行 
moveToPosition(int position) 
移动光标到一个绝对的位置 
moveToPrevious() 
移动光标到上一行

3. 小例子: 

(1) 为空的Cursor的判断

if (cur.moveToFirst() == false) {    //为空的Cursor    return;}

(2) 访问 Cursor 的下标获得其中的数据

int nameColumnIndex = cur.getColumnIndex(People.NAME);String name = cur.getString(nameColumnIndex);

(3)循环 Cursor 取出需要的数据

while(cur.moveToNext()) {    //光标移动成功    //把数据取出}

当cur.moveToNext() 为假时将跳出循环,即Cursor数据循环完毕。 

如果你喜欢用 for 循环而不想用While 循环可以使用Google 提供的几下方法: 
isBeforeFirst() 
返回游标是否指向之前第一行的位置 
isAfterLast() 
返回游标是否指向第最后一行的位置 
isClosed() 
如果返回 true 即表示该 标己关闭

for(cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {    int nameColumn = cur.getColumnIndex(People.NAME);    int phoneColumn = cur.getColumnIndex(People.NUMBER);    String name = cur.getString(nameColumn);    String phoneNumber = cur.getString(phoneColumn);}

 

有了以上的方法,可以如此取出数据:

 

分类: 
本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/6204133.html如需转载请自行联系原作者
demoblog
你可能感兴趣的文章
MyBatis使用DEMO及cache的使用心得
查看>>
网站文章如何能自动判定是抄袭?一种算法和实践架构剖析
查看>>
【OpenCV学习】滚动条
查看>>
ofo用科技引领行业进入4.0时代 用户粘性连续8个月远甩摩拜
查看>>
无法拒绝|华为618最高优惠1000元 更有梅西签名球衣奉送
查看>>
乐信Q2季报图解:调整后净利过5亿 同比增长776%
查看>>
兰州青年志愿者“中西合璧”玩快闪 温暖旅客回家路
查看>>
计划10年建10万廉价屋 新西兰政府:比想象中难
查看>>
甘肃发首版《3D打印职业教育教材》:校企合作育专才
查看>>
内蒙古2019年精准脱贫新“目标”:20个贫困旗县全部摘帽
查看>>
韩国国会议员涉嫌投机炒房 检方称已立案调查
查看>>
李娜入选国际网球名人堂 成亚洲第一人
查看>>
为找好心人抚养孩子 浙江一离婚父亲将幼童丢弃公园
查看>>
晚婚晚育 近20年巴西35岁以上孕妇增加65%
查看>>
读书:为了那个美妙的咔哒声
查看>>
我从过去八个月的AI公司面试中学到了什么?
查看>>
jQuery实践小结
查看>>
深入探究Immutable.js的实现机制(一)
查看>>
jsp改造之sitemesh注意事项
查看>>
iOS底层原理总结 - 探寻block的本质(二)
查看>>