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是否为空,也就是没数据

    1. if (cur.moveToFirst() == false)  
    2. {  
    3. //为空的Cursor  
    4.  return;  
    5. }  

    或者

    1. if (null != cur ){  
    2.         
    3. }  


     

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

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

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

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

     

    3,遍历cursor中每行数据

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


    或者

    1. do {  
    2.   
    3.   
    4.   }while(cur.moveToNext())  


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

     

    1. for(cur.moveToFirst();!cur.isAfterLast();cur.moveToNext())  
    2. {  
    3.     int nameColumn = cur.getColumnIndex(People.NAME);  
    4.     int phoneColumn = cur.getColumnIndex(People.NUMBER);  
    5.     String name = cur.getString(nameColumn);  
    6.     String phoneNumber = cur.getString(phoneColumn);  
    7. }  

      isBeforeFirst()

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

      isAfterLast()

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

     isClosed()


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值