2009-04-13 84 views
3

从数据库表中获取数据到代码中的对象看起来总是很平凡的代码。有两种方法我发现做到这一点:数据映射代码或反射代码?

  1. 有一个代码生成器,读取数据库表并创建 类和控制器的数据域的类字段或
  2. 使用反射贴图取数据库字段,并在课堂上找到它。

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

  • 方法注意1我看来,像我想的东西,因为我要创建每个表的控制器。
  • 方法2似乎是太劳动密集型,一旦你进入重的数据 访问代码。

是否有第三条路线,我应该尝试从数据库中获取数据到我的对象上?

+0

指定您正在考虑的平台/编程语言会很好;答案可能与平台有关。 – StaxMan 2009-04-13 23:23:12

回答

1

我认为对此的回答取决于您将要使用的语言的可用技术。

我一个人非常成功地使用了ORM(NHibernate),所以自然我可以推荐选项一。

还有,你不妨采取虽然其他选项:

  • 如果您使用的是.NET,您可以选择使用您的类属性的属性服务无论是作为一个类中的一个映射,或作为可以反映的数据
  • 如果您使用.NET,Fluent NHibernate将使您可以轻松地在代码中进行类型安全映射。
  • 您可以使用泛型,以便您不需要为每个表格创建控制器,但我承认无论如何您都可能会执行后者。然而,泛型可以包含所有表通用的大多数通用CRUD方法,并且您只需要编写特定的怪癖。
0

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

3

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

0

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