假设我有一个包含两个表的数据库:companies和employees。我应该创建companyDAO和employeeDAO如果我从这两个表中选择、更新、添加和删除吗?
或者我应该创建一个 DAO,在其中为数据库中的每个表编写 CRUD 操作方法?
为整个数据库创建一个 DAO 并不能很好地扩展。添加的数据库表越多,它就越大。在工业中,您几乎总是会看到一对一的 DAO 与表关系。与往常一样,也有例外和警告。
DAO是的,对于大多数实体来说,有单独的 s 是有意义的。
很多时候你会使用泛型DAO,即你有一个抽象的超类。在一个简化的示例中,它可能如下所示:
class BaseDAO<T extends Entity>
Run Code Online (Sandbox Code Playgroud)
提供了一系列有用的方法来查找、删除或更新实体。为每个实体定义 BaseDAO 的子类时,例如
class EmployeeDAO extends BaseDAO<Employee>
Run Code Online (Sandbox Code Playgroud)
您确保所有 DAO 都为您只需在 BaseDAO 中实现的方法返回正确的类型。因此,findAll()EmployeeDAO 中的方法将返回List<Employee>.
findEmployeesWithSalaryAbove(long)此外,您可以为某些实体(例如在相应的类中)实现自定义操作的方法。您不希望这些使单个 DAO 变得混乱。
| 归档时间: |
|
| 查看次数: |
3963 次 |
| 最近记录: |