有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java多个DAO与带有配置文件的一个DAO

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

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

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

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

我很想选择第二个选项,这似乎可以消除DAO中相当多的代码重复。有人能给出这两种方法的优缺点吗

当您在使用JDBC时并不真正需要多个DAO工厂(抽象工厂模式)时,为什么要选择它


共 (2) 个答案

  1. # 1 楼答案

    考虑到您不能使用Spring(尽管它可以节省大量代码),我想说第二个变体更适合您,因为您将自己实现依赖关系管理,而且1个依赖关系(单DAO工厂)总是比2容易

    不过,如果您认为两个数据库同时使用的DAO位置数量不大,那么将它们分为两个工厂将具有更好的结构意义,而且更干净。但是如果您认为,几乎所有使用DAOs的类都需要两个世界(Oracle+DB2),那么请再次使用第二个变体

    无论如何,试着再考虑DeNeNeCy注入框架的用法,因为不管怎样,你要用所有的工厂来实现你自己。p>
  2. # 2 楼答案

    我相信SpringGuice对您来说是最好、最干净的选择,您希望选择合适的DAO实现并将其注入DAO消费者层。Spring还将使您能够使用Spring JDBC,它负责大多数样板代码,使DAO易于管理和编码。您还可以将ORMs与Spring结合使用