对于数据访问对象,有哪些方法和参数?典型的DAO看起来像
DAO<T>
+ select(): List<T>
+ selectOne(id: int): T
+ insert(obj: T): boolean
+ update(obj: T): boolean
+ delete(obj: T): boolean
如果是这样,为什么不让我的实体/域对象继承此类?然后我不必将对象传入此类。目前,这个类似乎会包含很多类似的代码?我想我对DAO的理解是错误的吗?我对ORM更熟悉
答案 0 :(得分:1)
事实上,典型的DAO与您描述的很相似,并且有些库可以帮助您避免创建仅在类型上有所不同的类似方法(如果使用ORM实现DAO,请查找 泛型的DAO 强>)。
例如,像Spring-Data-JPA这样的框架让您专注于通过其他标准查询对象的不常见方法。
findByName(String:name):List
findByDay(日期:d1,日期d1):列表
将这些方法移动到实体对象是一种人们更喜欢的模式,但正是能够定义通用DAO并从中继承这一点的原因,将这些方法保留在不同的类中是理所当然的。
所以,我对你对DAO的理解不错。