1

对于我的工作,我试图说服我的同事使用 ORMLite(刚刚找到它)而不是编写我们自己的笨重且容易出错的 DB 访问器代码野兽。我有大约 2 小时的时间来完成这个工作,所以我希望你们能在这里帮助我!

所以我现在试图理解我在这里找到的示例应用程序。据我了解,您需要为您将拥有的每个模型/表创建一个类。在示例中,有一个 Person.java 和一个 App.java 文件。在这些文件中,您需要为每个字段手动创建所有 getter 和 setter。到目前为止,一切都很好。

在这些文件旁边,我有以下文件:

  • 数据库助手.java
  • DemoRepository.java
  • PersonAdapter.java
  • DemoORMLiteActivity.java

我的问题是:

  1. 从这个意义上说,什么是存储库?为什么需要它?我正在查看代码,但我无法真正理解它。
  2. 此外,我还需要自己创建所有这些文件,还是其中一些是自动生成的?
  3. 如果我需要自己创建所有这些文件,除了不需要几行 SQL 之外,使用 ORM 有什么好处?
4

1 回答 1

1

从这个意义上说,什么是存储库?为什么需要它?我正在查看代码,但我无法真正理解它。

嗯,您提供的链接描述得很好:

存储库层包装了所有 ORMLite 调用,隐藏了与所有数据库操作相关的任何异常和代码。

因此,“存储库”提供了特定的业务逻辑方法,这些方法又调用了数据访问对象或 DAO 方法。它是您调用数据库的实用程序类。在他们的示例中,他们deletePerson(...)执行了一系列数据库操作来删除 aPerson及其相关App条目。

DAO 类提供所有与实体无关queryById(...)的方法类型。在我看来,存储库类为相关的特定应用程序添加了非常具体的功能。

如果您查看ORMLite HelloAndroid 示例代码,您会发现它没有存储库类,因此它不是必需的。

此外,我还需要自己创建所有这些文件,还是其中一些是自动生成的?

您将需要自己创建实体文件和数据库助手。数据库助手是处理您可能已经拥有的onCreate(...)和方法的类。onUpgrade(...)有一个基类OrmLiteSqliteOpenHelper可以帮助解决这个问题。

如果我需要自己创建所有这些文件,除了不需要几行 SQL 之外,使用 ORM 有什么好处?

ORM 是一个好主意的原因有很多。对我来说,这是关于可扩展性。当然现在是“几行 SQL”,但除非你没有增长计划,否则这几行会很快变得复杂。使用 ORM,您可以管理您的实体,而不必担心数据库。

这里有一些更多信息:

于 2013-09-23T13:39:06.210 回答