我有一个使用sqlite数据库的应用程序。目前我有一个数据库助手类,我在我的主类中调用它来访问数据库。然后我暂时将我检索到的项目存储在游标中。每次我想访问我的数据库时,我都要打开数据库,创建一个新游标,查询数据库并将结果添加到游标中,从游标中拉出信息,关闭游标,关闭数据库,然后显示到用户。
现在我每次要访问db时都要访问db helper类 我每次都在创建一个新的游标 我正在进行sqlite查询。
我想知道是否应该更改代码以执行以下操作: 打开DB 将所有数据存储到游标 关闭db
然后每当我想访问信息时,我只需引用游标,无需再次调用db helper类。
或者将数据存储到数组中会更有效: 打开db 将数据存储到游标 循环游标并将数据存储到数组中 关闭光标 关闭db
这些之间有什么区别(处理时间和内存使用),是否有更有效的方法来使用最少的资源?使用数组或游标更快吗?我不想浪费cpu时间调用不必要的函数或者使用更多的内存存储膨胀的对象。
答案 0 :(得分:1)
在您的活动中,如果您想执行一次选择查询并将该数据用于您的活动,则必须从Cursor中创建ArrayList or Hashmap
,然后您必须关闭光标。
但是如果你必须多次访问数据库并且通过执行查询得到不同的结果,那么你必须使用游标并从游标更新获取数据到UI并关闭Cursor。
您正在使用Helper类,因此它是最佳选择,因此您不必怀疑处理。
当您想要获取数据时,只需创建一个Helper类对象,打开连接,执行查询并返回数据,从活动中的光标获取数据,更新UI,关闭数据库。
这是正常的方式,也是一种好方法。