假设我有一个数据库,其中有两个表:companiesemployees
如果我从这两个表中选择、更新、添加和删除,是否应该创建companyDAOemployeeDAO
或者我应该创建一个DAO,在其中我将为数据库中的每个表的CRUD操作编写方法?

最佳答案

是的,对大多数实体使用单独的DAOs是有意义的。
通常情况下,您将使用泛化的DAOs,也就是说,您有一个抽象的超级类。在一个简化的示例中,它可能如下所示:

class BaseDAO<T extends Entity>

它提供了一系列有用的方法来查找、删除或更新实体。当为每个实体定义该BaseDAO的子类时,例如。
class EmployeeDAO extends BaseDAO<Employee>

确保所有dao都返回只需在BaseDAO中实现的方法的正确类型。因此,您的EmployeeDAO中的findAll()方法将返回List<Employee>
此外,您还可以为某些实体实现自定义操作的方法,例如在相应的类中的findEmployeesWithSalaryAbove(long)。你不想让它们弄乱一把刀。

09-28 01:58