Android中cursor类的使用

android中从数据库中查出来的数据一般都存在cursor中即:Cursor mCursor = mSQLiteDatabase.query("select * form table", null),说白了就是一个数据集合,具体的说就是每行数据集合,下面是api中对cursor的解释

关于 Cursor,

1,Cursor 是每行的集合。

2,使用 moveToFirst() 定位第一行。

3,Cursor 是一个随机的数据源。

4,所有的数据都是通过下标取得。

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 ()
移动光标到上一行

1 看些这几行代码一般是判断Cursor是否为空,也就是没数据

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

或者

if (null != cur ){
      
}


其实第二中方法方便,第一种是为了便于理解

2 通过Cursor 的下标获得数据,下标我的理解是每行行的第几列,下面方法就是获得某行中某列的数据

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

其中name为列名,首先通过列名称找出在该行中位于第几列,通过列索引找出该行中name字段的值

3,遍历cursor中每行数据

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


或者

do {


  }while(cur.moveToNext())


要是不想用上面这2种循环,习惯用for循环,google有方法实现for循环

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

isBeforeFirst()

返回游标是否指向之前第一行的位置

isAfterLast()

返回游标是否指向第最后一行的位置

isClosed()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值