游标在 Android 开发中有啥用?

Posted

技术标签:

【中文标题】游标在 Android 开发中有啥用?【英文标题】:What is use of Cursor in Android Development?游标在 Android 开发中有什么用? 【发布时间】:2012-04-13 20:56:50 【问题描述】:

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

【问题讨论】:

queception.com/question.php?question=106 【参考方案1】:

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

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

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

中的数据了

【讨论】:

【参考方案2】:

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

例如,您的光标中有数据

Lalit
Rithesh
Paresh
Chandra

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

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

【讨论】:

【参考方案3】:

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

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

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

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

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

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

【讨论】:

我想知道在创建光标时是否已获取所有数据,或者是否可能会延迟到您调用 getCount() 和 moveTo*() 等方法【参考方案4】:

Cursor 类似于 java 中的 ResultSet,它有一些查询返回的行及其指针。 moveToFirst()moveToNext()moveToPosition(position) 将指针设置为所需位置。

【讨论】:

【参考方案5】:

游标是存储任何 SQL 查询结果的地方。

【讨论】:

解释不充分【参考方案6】:

光标界面用作数据集合。

它与PL/SQL 中的Cursor 类似,因为它使用指针保存一些查询返回的一行或多行。

Cursor 接口中提供了以下方法,它们遍历Cursor,将Cursor pointer 设置为所需位置:

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

【讨论】:

【参考方案7】:

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

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

【讨论】:

以上是关于游标在 Android 开发中有啥用?的主要内容,如果未能解决你的问题,请参考以下文章

android/flutter 中的 settings_aar.gradle 有啥用?

android studio有啥用

Android系统 WebView是啥?有啥用?

Android中BaseColumns有啥用

ServiceRegistry在创建SessionFactory中有啥用

android contentprovider 有啥用