多个DAO与一个DAO配置文件

时间:2011-10-03 07:33:08

标签: java database dao

我目前正在为应用程序创建数据访问层。该应用程序最初将连接到Oracle数据库,但稍后也将连接到DB2数据库。

为了连接数据库,我将使用JDBC。这时我正在考虑我的选择。我看到它有两个(主要)选项。

1)创建一个支持多个DAO工厂的设计,每个工厂都实例化特定于其数据库的DAO。最初,这种设计只有一个工厂。稍后它将扩展第二个工厂和DAO课程。

2)创建一个DAO工厂,为不同的模型实例化多个DAO。这个DAO工厂基于配置文件构建DAO,配置文件包含JDBC驱动程序路径和连接URL。

我很想选择第二个选项,它似乎删除了DAO中的一些代码重复。任何人都可以给出这两种方法的利弊吗?

为什么在使用JDBC时不需要它时会选择多个DAO工厂(抽象工厂模式)?

2 个答案:

答案 0 :(得分:3)

我相信SpringGuice对您来说是最好和最干净的选择,您需要选择适当的DAO实现并将其注入DAO使用者层。 Spring还将使您能够使用Spring-JDBC,它可以处理大部分样板代码,使您的DAO Impls易于管理和编码。您也可以在Spring中使用ORM。

答案 1 :(得分:2)

考虑到你不能使用Spring(即使它可以节省你的大量编码),我会说第二种变体更适合你,因为你将自己实施dependecy管理1依赖(单个DAO工厂)总是比2更容易。

但是,如果你期望两个数据库的DAO一起使用的数量并不大,那么将它们分成两个工厂将具有更好的结构意义并且更加清洁。但是如果你期望的话,几乎每个使用DAO的类都需要两个世界(Oracle + DB2),那么再次坚持第二个变种。

在任何情况下,请尝试再次考虑依赖注入框架的使用情况,因为无论如何,您要为所有工厂实施自己的工作。