Java 循环查看SqlLite记录。对我来说,这有什么效率?
我有一个问题 我有一个从我的web服务器检索图像的应用程序。我的活动显示一个图像和两个按钮(上一个和下一个) 我想升级我的应用程序,并集成“收藏夹”选项。所以,若用户喜欢特定的图像,url字符串(而不是图像)将保存在sqlite数据库中 问题: 我将放置ImageView并像按钮一样操作。该ImageView将显示一个壁炉或其他东西,因此它将指示用户可以点击,以将url保存到sqlite数据库。如果数据库中已经存在url字符串,我希望ImageView有所不同。这意味着,对于每个图像,我都需要遍历数据库中的所有URL。这有什么效率?我可以这样做吗,否则我会影响设备性能 如果有人不明白的话Java 循环查看SqlLite记录。对我来说,这有什么效率?,java,android,Java,Android,我有一个问题 我有一个从我的web服务器检索图像的应用程序。我的活动显示一个图像和两个按钮(上一个和下一个) 我想升级我的应用程序,并集成“收藏夹”选项。所以,若用户喜欢特定的图像,url字符串(而不是图像)将保存在sqlite数据库中 问题: 我将放置ImageView并像按钮一样操作。该ImageView将显示一个壁炉或其他东西,因此它将指示用户可以点击,以将url保存到sqlite数据库。如果数据库中已经存在url字符串,我希望ImageView有所不同。这意味着,对于每个图像,我都需要遍
谢谢您的帮助。我想您的问题是关于SQLite SELECT语句的性能 您说“检查数据库中的所有URL(或直到检测到匹配),以防匹配” 我认为这意味着一个循环,但实际上,您只想正确地构建SELECT语句,以便SQL完成繁重的工作。从DB中选择一行应该不会太慢。选择所有行,然后在java中循环可能会很慢 您希望执行以下操作:
SELECT * FROM `table` WHERE `url`="http://www.someurl.com/image.jpg"
这将返回一个完全匹配的结果。没有循环,只要有结果,图像就会保存,如果没有返回,图像就不会保存
除非你有数以百万计的条目,否则我想上述技术会表现得很好。使用SharedReferences为此目的,它的性能要好得多这里有一些很好的教程,并提供了一个,它也更容易检测重复项我认为如果URL是已经在那里了,而不是在java中迭代所有URL。这就是我要寻找的答案。谢谢:)嗯,如果用户保存500个或1000个URL呢?在我看来,您的案例是一个键/值对存储,对于SharedReference,我更喜欢它。如果成长太快,两者都会占用大量的数据存储空间,但我相信SharedReference的实现使搜索和编辑变得更容易。SQLite旨在提供更健壮的关系数据库,但这由您来决定