首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解ORMLite

理解ORMLite
EN

Stack Overflow用户
提问于 2013-09-23 08:57:03
回答 1查看 118关注 0票数 1

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

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

在这些文件旁边,我找到了那些折叠式的:

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

我的问题是:

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-23 13:39:06

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

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

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

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

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

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

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

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

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

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

以下是更多信息:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18955301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档