为不同的数据库创建接口,选择实现的属性

时间:2014-02-01 07:18:22

标签: java sql xml interface

我想为不同的数据库XML,Sql和实现创建接口。我有一个界面,但它对xml有好处,但对于其他界面?我想从这个界面创建jar libary。我还有一个POJO类Book,它代表数据库中的对象。我将有两个实现,一个用于XML,一个用于sql,如何在没有编译的情况下从propeties文件中设置一个?

 interface DataInterface {

public void setBook(ArrayList<Book> book);

public ArrayList<Book> getBook();

public void update(ArrayList<Book> book, int row, int col);

public void read();

public void add(Book book);
   }

1 个答案:

答案 0 :(得分:0)

您可以创建2个类XmlDataInterfaceSqlDataInterface,这两个类都实现了您的指定接口DataInterface

现在,无论您想要访问哪个界面,都可以引用DataInterface,并访问上述所有方法。这样,使用DataInterface的代码仍然不知道实现细节。


当您实例化它时,棘手的部分就会出现。 :)

您可以拥有your_file_name.properties这样的文件,并且有类似

的文件
  

DataInterfaceImplementationType = XML(OR SQL)

存储在其中。

您可以轻松地将其作为键值对进行访问(有关详细信息,请参阅java.util.Properties)。

现在唯一剩下的就是实际的实例化,它应该类似于

DataInterface dataInterface; // Declare as a member.
// Use it everywhere freely without worrying.


// In maybe a constructor put following.

String dataInterfaceImplementationValue;

// Code to read properties file and get value of dataInterfaceImplementationValue.

if (dataInterfaceImplementationValue.equals("XML")) {
    dataInterface = new XmlDataInterface();
} else if (dataInterfaceImplementationValue.equals("SQL") {
    dataInterface = new SqlDataInterface();
} else {
    System.out.println("Invalid property set: " + dataInterfaceImplementationValue);
}

希望这有帮助。