3

将数据从数据库表中获取到代码中的对象似乎总是很普通的代码。我发现有两种方法可以做到这一点:

  1. 有一个代码生成器,它读取数据库表并创建类和控制器以将数据字段映射到类字段或
  2. 使用反射获取数据库字段并在类中找到它。

上述2种方法注意到的问题如下

  • 方法 1 在我看来好像我遗漏了一些东西,因为我必须为每个表创建一个控制器。
  • 一旦您进入繁重的数据访问代码,方法 2 似乎太费力了。

我应该尝试将数据从数据库获取到我的对象上吗?

4

4 回答 4

3

在这种情况下,您通常使用 OR(对象-关系)映射器。提供 OR 功能的一个很好的框架是Hibernate。这回答了你的问题了吗?

于 2009-04-13T20:25:21.893 回答
1

我认为这个问题的答案取决于您将要使用的语言的可用技术。

我在使用 ORM(NHibernate)方面非常成功,所以我自然会推荐选项一。

您可能希望采取其他选择:

  • 如果您使用的是 .NET,您可以选择使用类属性的属性作为类中的映射,或者作为可以反映的数据
  • 如果您使用的是 .NET,Fluent NHibernate 将使在您的代码中进行类型安全的映射变得非常容易。
  • 您可以使用泛型,这样您就不需要为每个表创建一个控制器,尽管我承认您很可能无论如何都会做后者。然而,泛型可以包含所有表通用的大多数通用 CRUD 方法,您只需要编写特定的怪癖。
于 2009-04-13T23:26:30.070 回答
0

我使用反射来来回映射数据,即使在大量数据访问下也能正常工作。“第三条路线”是手工做所有事情,这可能跑得更快,但写起来真的很慢。

于 2009-04-13T20:24:54.030 回答
0

我同意 lewap,一个 ORM(对象关系映射器)在这些情况下真的很有帮助。您可能还想考虑 Active Record 模式(在 Fowler 的企业架构模式一书中进行了讨论)。它可以真正加快简单应用程序中 DAL 的创建速度。

于 2009-04-13T23:25:54.050 回答