在Android开发中使用Cursor有什么用?

时间:2012-03-30 07:10:28

标签: android cursor

我正在浏览互联网上有关数据库连接,检索的一些代码。我在许多代码中看到了Cursor cur1= moveToFirst(),我想知道游标的用途是什么以及为什么我们使用moveToFirst(),因为我是android新手。

7 个答案:

答案 0 :(得分:130)

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

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

当您在光标上调用 moveToFirst()方法时,它会将光标指针指向第一个位置。现在,您可以访问第一条记录

中的数据

答案 1 :(得分:59)

简单来说,Cursor是一个返回查询数据集合的接口。 moveToFirst()用于指向光标位置,以便从光标获取数据。有方法moveToLast()moveToNext()moveToPrevious()moveToPosition(position)您可以通过所需的方式迭代光标。

例如,您的光标中有数据

Lalit
Rithesh
Paresh
Chandra
  • moveToFirst() - 如果您在这种情况下使用cursor.moveToFirst() 它会指向Lalit,因为它是光标中的第一个数据。要得到 光标中的下一个数据可以使用moveToNext()

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

答案 2 :(得分:24)

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

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

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

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

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

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

答案 3 :(得分:10)

Cursor就像java中的ResultSet一样,它有一些带有指针的查询返回的行。 moveToFirst()moveToNext()moveToPosition(position)设置指向所需位置的指针。

答案 4 :(得分:2)

  

使用光标界面作为数据集合。

它与newCollection()中的Cursor类似,它保存一些查询返回的一行或多行。

PL/SQL界面中提供了以下方法,这些方法遍历Cursor,将Cursor设置为所需位置:

  • moveToFirst()
  • moveToLast()
  • 使用MoveToNext()
  • moveToPrevious()
  • moveToPosition(位置)

答案 5 :(得分:2)

游标是任何SQL查询结果将存储在其中的。

答案 6 :(得分:0)

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

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