SQLite数据库中的大字符串对象

时间:2013-08-11 15:42:15

标签: android sqlite design-patterns

我有一个SQLite数据库,它有一个名为Object的表(当然)。在我的应用程序中,我需要访问该表及其所有字段。我能够查询数据库,并从光标中获取我想要的所有信息,没有任何问题。问题在于下一步决定如何处理光标。现在我正在考虑创建一个名为Object的类,它将为表中的每一列提供字段,这些字段将由查询设置。这似乎是......效率低下。我不知道如何做到这一点,而不需要写出表中的每个列供该对象使用,这似乎违反了DRY。有没有更好的方法来做到这一点?

我的最终目标是能够访问表中的每一行,并获得我想要的那一行信息。例如,我将使用它来填充ListView。如果这太模糊,请告诉我,我会尽力澄清。

谢谢!

编辑:我找到了库db40,它似乎做了我想要的。对于移动应用程序来说,库似乎有点大(40 mb)。有没有人有这方面的经验?我读过的所有内容似乎都表明它很好。如果我找到信息,我会发布更多信息。

1 个答案:

答案 0 :(得分:1)

  

有没有更好的方法来做到这一点?

这是一个非常“宽泛”的问题,取决于个人要求以及对开发人员来说更舒适的问题。我正在使用你的想法,这对你来说是你能用到的最好的。

通常我们可以说你想创建ORM(对象关系映射)。这是非常干净和有效的方法(我的意见)。当然有时不是使用ORM的最佳解决方案(我从未见过这个案例,但听说过它)。我几乎总是使用我自己定义的ORM肯定需要一些时间,但结果对于完成的框架是很重要的。

两者都有优点和缺点。拥有ORM具有更高的性能,因为它是针对具体解决方案(主要是查询等)指定和优化的。

我建议你做你提到的->创建对象,该对象将表示数据库中具有等于列的属性的表。我在工作中使用它,我们的应用程序从未出现性能问题或电池消耗过多。

如果您向用户显示一些数据不是直接来自数据库而是“复制”在对象中,那么它也会更安全。用户可以使用已显示的结果执行任何操作(他们可以添加一些危险的符号和黑客),但现在您可以在需要更改数据库之前轻松检查此内容。

您的源代码看起来不错,其他开发人员不会丢失在您的代码中,所有内容都将清晰易用,以便将来更新。

我在这件事上提供了“我的意见”,所以希望它能帮助你做出决定。