5

我正在 JSF 中设计一些数据“块”,并且我从每个块的 Java bean 中获取数据。我的问题是我的块从多个表中获取数据。例如:

描述客户个人数据的块包括:

  • 客户名称(在表customer中)
  • 客户姓氏(在表customer中)
  • 客户电话(在客户表中)
  • 客户地址(在表地址中)
  • 客户公司(在表公司
  • 工作中的客户电话(在表公司

我将不得不访问 3 个单独的表才能填充此块。与其构建 3 个不同的 DAO(每个表一个),不如每个块构建一个 DAO更好吗?我知道这种方式在一致性方面存在缺点,因为如果一个表将被多个 DAO 访问,则表的每次更改都必须应用于其中的每一个。但是根据我的具体业务逻辑,我的代码会更容易理解。这里还有什么缺点?通常建议创建可以访问许多表的 DAO 吗?

4

1 回答 1

6

我对这个问题的解决方案是getCustomerWithAddressAndCompanyInfoCustomerDAO. 此方法运行单个查询连接客户地址公司表,并通过对数据库的一次访问返回结果。

如果您选择访问 3 个 DAO,则必须对数据库执行 3 个不同的查询,这可能会产生性能问题。正如您所说,这也可能导致不一致。

另一种方法可能是在单独的类中收集此类复杂的查询方法,CustomerQueries而不是在现有的 DAO 类中实现它们。

于 2013-10-17T13:32:30.347 回答