Java Android数据库游标是如何具体实现的?
我对Android中Java Android数据库游标是如何具体实现的?,java,android,cursor,Java,Android,Cursor,我对Android中游标的实现细节很感兴趣。我知道,基本上,它只是一个提供对数据库查询返回的结果集的随机读写访问的函数。我想知道具体的Cursor实现: 它是一种存储数据库结果集的数据结构吗 或者它只是一个只处理一行的结构 Is只是一些存储数据库结果集的数据结构 对 或者它是一个只处理一行的结构 不完全是。游标可以根据源查询处理一行或多行。游标是数据的映射,将包含源(选择)查询返回的行数。所以,若查询返回一百行,这些行将插入到游标中,游标将包含这一百行 您可以将光标想象为具有动态大小(类似于列表
游标的实现细节很感兴趣。我知道,基本上,它只是一个提供对数据库查询返回的结果集的随机读写访问的函数。我想知道具体的Cursor
实现:
它是一种存储数据库结果集的数据结构吗
或者它只是一个只处理一行的结构李>
Is只是一些存储数据库结果集的数据结构
对
或者它是一个只处理一行的结构
不完全是。游标可以根据源查询处理一行或多行。游标是数据的映射,将包含源(选择)查询返回的行数。所以,若查询返回一百行,这些行将插入到游标中,游标将包含这一百行
您可以将光标想象为具有动态大小(类似于列表)的数据地图,其中数据被放置为“行”。每一行都有自己的行id(行号,我们可以说是一些指针),当它们被插入到游标时会逐渐生成,您可以简单地使用这个数字在行之间移动。
隐式地,每个游标的“实际指针”位于第一行(-1)之前,因此,如果调用c.getString(0)
expection将被抛出,因为没有要检索的内容
所以您必须始终调用为读取准备游标的cursor.moveToFirst()
,如果为空,则方法返回false,因为没有行