理解ORMLite

时间:2013-09-23 08:57:04

标签: java android orm repository ormlite

对于我的工作,我试图说服我的同事使用ORMLite(刚刚找到它)而不是编写我们自己繁琐且容易出错的DB-accessor代码的野兽。我有大约2个小时的时间让这个东西上班,所以我希望你们能在这里帮助我!

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

在这些文件旁边,我有了下面的文件:

  • DatabaseHelper.java
  • DemoRepository.java
  • PersonAdapter.java
  • DemoORMLiteACtivity.java

我的问题是:

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

1 个答案:

答案 0 :(得分:1)

  

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

你提供的链接很好地描述了它:

  

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

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

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

如果查看ORMLite HelloAndroid example code,您会发现它没有存储库类,因此不需要它。

  

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

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

  

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

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

以下是更多信息: