【问题标题】:How is Android database cursor implemented in details?Android数据库游标是如何详细实现的?
【发布时间】:2022-01-05 03:18:57
【问题描述】:

我对@9​​87654322@ 在Android 中的实现细节很感兴趣。我知道基本上它只是一个interface,它提供对数据库查询返回的结果集的随机读写访问。我想知道特定的 Cursor 实现:

  1. 它是某种存储数据库结果集的数据结构吗?
  2. 或者它只是一个只处理一行的结构?

【问题讨论】:

    标签: java android android-cursor


    【解决方案1】:

    Is只是一些存储数据库结果集的数据结构

    是的。

    或者它是一些只处理一行的结构?

    不完全是。游标可以根据源查询处理一行或多行。光标是数据映射,将包含与 source(select) 查询返回的行数一样多的行。所以如果查询返回一百行,这些行被插入到 Cursor 并且 Cursor 包含这一百行。

    您可以将光标想象为具有动态大小的数据映射(类似于列表),其中数据被放置为“行”。每行都有自己的行 id(行号,我们可以说是一些指针),当它们被插入到 Cursor 时逐渐生成,您可以简单地在具有此编号的行之间移动。 隐式地,每个 Cursor 都有位于第一行(-1 位置)之前的“实际指针”,因此如果您调用 c.getString(0),将抛出期望,因为没有什么可检索的。

    所以你总是必须调用 cursor.moveToFirst() 来准备 Cursor 以供读取,如果为空,则方法返回 false,因为没有行。

    【讨论】:

      猜你喜欢
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 2016-10-25
      • 2011-05-13
      • 1970-01-01
      相关资源
      最近更新 更多