加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 从数据库获取数据与从哈希映射获取数据

发布时间:2020-12-14 23:56:54 所属栏目:Java 来源:网络整理
导读:在我的 android *项目*我必须跟踪一定数量的产品的产品细节.这些产品上的所有数据都存储在SQLite数据库中.我可以在SQLite中使用select和update来跟踪产品对象.因此,我可以在更改时存储产品详细信息. 此外,我可以在开始时将所有产品加载到哈希映射或此类数据
在我的 android *项目*我必须跟踪一定数量的产品的产品细节.这些产品上的所有数据都存储在SQLite数据库中.我可以在SQLite中使用select和update来跟踪产品对象.因此,我可以在更改时存储产品详细信息.
此外,我可以在开始时将所有产品加载到哈希映射或此类数据结构中,并跟踪这些产品对象.
对我而言,最重要的是哪一个更有效率和更高效.有人能帮我吗.谢谢!

解决方法

这取决于产品的数量. HashMap驻留在RAM中,数据库驻留在磁盘上.

这还取决于每秒查询的数量和查询的性质.数据库开发人员付出了很多努力来支持索引和过滤;如果你需要,重用比重新发明更好.

无论您选择哪种方法,您都必须记住Android应用程序进程可能随时被杀死(例如,当另一个进程需要内存时),并且您的代码只能保证接收onPause()(而不是onDestroy()或onStop( ),参见活动生命周期).如有必要,稍后将重新启动应用程序,但保存在RAM中(而不是保存)的所有数据当然都将丢失.因此,在onPause()或onSaveInstanceState()(what bundles are for)中,必须保存应用程序状态.在您的情况下,这可能意味着必须保存HashMap和所有辅助数据结构.

OTOH,如果产品数量很少(并且预计仍然很小),数据库可能是一种过度杀伤力;如果您只需要选择10个项目中的一个,那么编写循环比完成所有数据库支持要快.

一个更重要的注意事项:一个Activity是一个来自MVC观点的Controller(对于View,你通常创建和XML并重用现有的框架类,尽管你可以编写自定义控件).每次设备方向更改时以及在某些其他情况下,都会重新创建活动.但是您的数据属于Model部分.他们必须在方向改变中存活下来因此,它们不得归活动所有.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读