2011-11-04 39 views
2

對於數據訪問對象,有哪些方法和參數?將一個典型的DAO看起來像數據訪問對象的方法和參數

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

如果是這樣,那麼爲什麼不只是讓我的實體/域對象繼承這個類?然後我不必把對象傳入這個類。目前,這個類似乎會包含很多類似的代碼?我想我對DAO的理解是錯誤的?我更熟悉ORMs

回答

1

確實,典型的DAO與您所描述的非常類似,有些庫可幫助您避免創建類型不同的類似方法(如果您使用ORM實現DAO,請查找通用DAO)。例如,像Spring-Data-JPA這樣的框架,可以讓您專注於使用其他條件查詢對象的不常見方法。

findByName(字符串:名稱):列表

findByDay(日期:D1,日D1):名單

移動這些方法對實體對象是一些人喜歡的模式,但恰恰是能夠定義一個通用DAO並從中繼承的點,這將是將這些方法留在不同類中的原因。

所以,我不覺得你對DAO的理解是錯誤的。