游标在Android开发中的用途是什么?


Answers:


144

游标是表示任何数据库的二维表的接口。当您尝试使用SELECT语句检索某些数据时,数据库将首先创建CURSOR对象,并将其引用返回给您。

这个返回的引用的指针所指向的第0位置被否则被称为第一位置之前的的光标,所以当你想从光标retrive数据,你必须先移动到第一条记录,所以我们必须使用moveToFirst

Cursor上调用moveToFirst()方法时,它将光标指针移到第一个位置。现在,您可以访问第一条记录中的数据


64

简而言之,Cursor是一个接口,可以三次返回查询数据的集合。moveToFirst()用于将光标指向要从光标中获取数据的位置。有一些方法moveToLast()moveToNext()moveToPrevious()moveToPosition(position),通过它可以通过你的光标以希望的方式进行迭代。

例如,您的游标中有数据

Lalit
Rithesh
Paresh
Chandra
  • moveToFirst()-如果使用,cursor.moveToFirst()那么在这种情况下它将指向Lalit,因为它是光标中的第一个数据。要从游标中获取下一个数据,可以使用moveToNext()

  • moveToLast()-这会将Chandra指向光标中的当前数据。要从游标获取先前的数据,您可以使用 moveToPrevious()


27

游标代表查询的结果,并且基本上指向查询结果的一行。这样,Android可以有效地缓冲查询结果。因为它不必将所有数据加载到内存中。

要获取结果查询的元素数量,请使用getCount()方法。

要在各个数据行之间移动,可以使用moveToFirst()moveToNext()方法。该isAfterLast()方法允许检查是否已达到查询结果的结尾。

Cursor提供类型化的get *()方法,例如getLong(columnIndex)getString(columnIndex)以访问结果当前位置的列数据。“ columnIndex”是您正在访问的列的编号。

Cursor还提供了getColumnIndexOrThrow(String)一种方法,该方法允许获取表的列名的列索引。

需要使用close()方法调用关闭游标。查询返回一个Cursor对象。


我想知道是否在创建Cursor时就已经获取了所有数据,还是可能会延迟到调用getCount()和moveTo *()之类的方法之前
geekley

10

游标就像Java中的ResultSet一样,它具有一些查询及其指针返回的行。moveToFirst()moveToNext()并将moveToPosition(position)指针设置为所需位置。



2

使用游标界面作为数据收集。

它是类似于CursorPL/SQL的方式,它通过持有一些疑问与它的指针返回一行或多行。

Cursor界面中提供了以下方法,可循环访问Cursor,将设置Cursor pointer为所需的位置:

  • moveToFirst()
  • moveToLast()
  • moveToNext()
  • moveToPrevious()
  • moveToPosition(位置)

0

游标接口提供对数据库查询返回的结果集的随机读写访问。

不需要同步游标实现,因此使用游标时,来自多个线程的使用游标的代码应执行自己的同步。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.