DAO设计策略应该如何用于更新操作?

时间:2014-02-06 05:10:47

标签: java design-patterns

我自己感到很惊讶,这个问题以前从未发生过,但这次我感到困扰,因为我正在创建自己的应用程序。

我有一个有30个字段的TaskDetail类。在更新时,可能只有一小部分TaskDetail可以更新,就像任务的“endDate”一样。我们可以使用两种策略来更新此字段。

  • 方法1:使用所有30个字段更新整个对象,并在数据库中覆盖其余字段,使用相同的值预期更改的字段将使用新值更新。 OR
  • 方法2:仅更新已更改的字段。在这种情况下,我们会将Employee视为DTO,只使用新值填充“endDate”字段,因为它是唯一需要更改的字段。

这两种方法似乎都有其优点和缺点

方法1 :( PROS) - 它是一种更清洁的方法。              (CONS) - 为了一个领域,我们不必要地过多地写了29个字段。

方法2 :( PROS) - 我们只是更新被修改的字段              (CONS) - 使DAO看起来很脏,因为我们需要30次空检查以确定哪个字段必须更新。

这个问题让我有点不舒服。

这种方法中哪一种是可接受的方法还是第三种方法?我不太喜欢使用hibernate,尽管更喜欢Spring JDBC模板。

1 个答案:

答案 0 :(得分:1)

仅仅依靠信息的要点 - 方法1显然是性能开销,因为每次更新时每次都会更新所有29个字段。您可以根据更新的字段进行更多更新操作,但更多的操作将基于您的用例。与DAO的外观相比,我会更担心性能,可维护性和原子性,只要它没有复杂的写入。