【问题标题】:Data Access Objects' Methods and Arguments数据访问对象的方法和参数
【发布时间】:2011-12-21 17:52:44
【问题描述】:

对于数据访问对象,有哪些方法和参数?典型的 DAO 会是什么样子

DAO<T>
+ select(): List<T>
+ selectOne(id: int): T
+ insert(obj: T): boolean
+ update(obj: T): boolean
+ delete(obj: T): boolean

如果是这样,那为什么不让我的实体/域对象从这个类继承呢?然后我不必将对象传递给这个类。目前,这个类似乎会包含很多类似的代码?我想我对 DAO 的理解有点不对?我对 ORM 比较熟悉

【问题讨论】:

    标签: design-patterns data-access-layer


    【解决方案1】:

    确实,典型的 DAO 与您所描述的非常相似,并且有一些库可以帮助您避免创建仅类型不同的类似方法(如果您使用 ORM 实现 DAO,请查找 generic DAO)。

    像 Spring-Data-JPA 这样的框架,例如,让您专注于通过其他条件查询对象的不常见方法。

    findByName(String: name): 列表

    findByDay(Date: d1, Date d1): 列表

    将这些方法移动到实体对象是一些人喜欢的模式,但正是能够定义通用 DAO 并从它继承,这就是将这些方法留在不同类中的原因。

    所以,我认为你对 DAO 的理解没有错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 2022-01-05
      • 2017-05-16
      • 2016-08-09
      • 1970-01-01
      相关资源
      最近更新 更多