gpt4 book ai didi

Android SQLite 列和索引最佳实践

转载 作者:太空宇宙 更新时间:2023-11-03 13:27:25 26 4
gpt4 key购买 nike

我开始在我的 Android 应用程序中使用 SQLite。我对数据库并不陌生,多年来我一直在使用 Delphi 进行数据库工作,这确实减少了使用数据库的一些工作。

在应用程序中,可能有一个包含多个列的表格。当从表中读取数据时,执行一些 SQL,然后使用游标访问数据。

有几种方法可以通过游标访问数据,一种使用表中的列索引 - 我在网上看到的许多示例都使用这种方法。例如:

cursor.getString(3);

在代码中嵌入“3”并不是最好的主意,因此您可以使用:

int idx = cursor.getColumnIndex( "THECOLUMNNAME" );
cursor.getString(idx);

对表和列多次使用 getColumnIndex() 是一种浪费。保持数十或数百列的索引常量很容易出错。

我的问题是 - 做这类事情的最佳实践是什么?

我应该扩展 Cursor 以更好地表示特定表格吗?

谢谢,

迈克

最佳答案

当您的列很少,尤其是当这些列没有适当的名称(如 SELECT MAX(x), MIN(x) FROM t)时,使用固定列索引非常好.当列的数量/顺序稍后可​​能会更改,或者当查询与源代码中的游标访问之间存在较大距离时,这会更加危险。

如果您想避免过多的 getColumnIndex 调用,您确实应该缓存返回值。使用包含列索引和对游标的引用的包装类可以使这更容易,如下所示:

Cursor cursor = db.query(...);
Field foo = new Field(cursor, "FOO");
Field bar = new Field(cursor, "BAR");
while (cursor.moveToNext()) {
foo.getString();
bar.getInteger();
}

(这个类的实现留作练习...)

关于Android SQLite 列和索引最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17408348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com