【问题标题】:Large String Object in SQLite DatabaseSQLite 数据库中的大字符串对象
【发布时间】:2013-08-11 15:42:15
【问题描述】:

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

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

谢谢!

编辑:我找到了库 db40,它似乎可以满足我的要求。该库对于移动应用程序来说似乎有点大(40 mb)。有人有这方面的经验吗?我读过的一切似乎都表明它很好。如果我找到信息,我会发布更多信息。

【问题讨论】:

    标签: android sqlite design-patterns


    【解决方案1】:

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

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

    通常我们可以说您要创建ORM(对象-关系映射)。这是非常干净和有效的方法(我的观点)。当然有时不是使用ORM 的最佳解决方案(我从未遇到过这种情况,但听说过)。我几乎总是使用我自己定义的ORM,这肯定需要一些时间,但结果对于已完成的框架来说意义重大。

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

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

    如果您不直接从数据库中向用户显示一些数据,而是向用户显示对象中的“副本”,这也会更加安全。用户可以对显示的结果做任何想做的事(他们可以添加一些危险的符号和黑客),但现在您可以在更新数据库之前轻松检查这一点。

    您的源代码看起来不错,其他开发人员不会迷失在您的代码中,一切都将清晰易懂,便于将来进行更新。

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

    【讨论】:

    • 谢谢,这将我推向了正确的方向。我想我现在要使用 db4o。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多