【发布时间】:2011-11-29 17:42:26
【问题描述】:
我目前正在为应用程序创建数据访问层。此应用程序最初将连接到 Oracle 数据库,但稍后也会连接到 DB2 数据库。
为了连接到数据库,我将使用 JDBC。这个时候我正在考虑我的选择。在我看来,我有两个(主要)选项。
1) 创建一个支持多个 DAO 工厂的设计,每个工厂都实例化特定于其数据库的 DAO。最初,这个设计将只有一个工厂。稍后它将通过第二个工厂和 DAO 类进行扩展。
2) 创建一个 DAO 工厂,为不同的模型实例化多个 DAO。这个 DAO 工厂基于配置文件构建 DAO,其中包含 JDBC 驱动程序路径和连接 url。
我很想选择第二个选项,这似乎消除了 DAO 中相当多的代码重复。谁能给出这两种方法的优缺点?
当您在使用 JDBC 时并不真正需要时,为什么要选择多个 DAO 工厂(抽象工厂模式)?
【问题讨论】:
-
你考虑过使用 Spring 和 Hibernate 吗?
-
是的,决定(外部)不使用 Spring 或 ORM 解决方案。我只剩下这个了。
-
您可以直接使用 Spring DI 部分,而无需通过 Spring-JDBC 或 ORM。你可以选择你想在 Spring 中使用的东西——它是一个包含许多模块的非常丰富的框架。我宁愿教育决策者编写干净的模块化代码的好处,而不是编写一个本土的配置解析和 DI 系统。