数据库
首页 > 数据库> > java-使用多个数据库架构

java-使用多个数据库架构

作者:互联网

有一个第三方应用程序,该数据库由我的应用程序访问.它的数据库架构已更改了几次,因此,目前大约有四种不同的数据库架构(不同的列,相同实体的不同选择条件).

例如,存在一个实体“应用程序”.对于不同的模式,可以通过以下方式检索它:

1)SELECT *从应用程序中,cell_number< 65535 AND page_number< 65535 AND top_number = 65535 2)SELECT * FROM menu_item WHERE cell_number> -1 AND page_number> -1 AND parent_id = -1 AND component_name不为空

等等…

那么,哪种设计模式(使用Java)更适合于支持同一应用程序不同版本的多个数据库模式?当然,它应该为将来的变化做好准备.

解决方法:

这不是一件容易的事,因为很难将表结构正确映射到对象(如今,ORM通常用于执行此任务).

从您的问题看来,将Application声明为抽象类或接口并提供不同的实现就足够了.

public abstract class Application(){
    public abstract Application getAnApplication();
}

public ConcreteApplicationOne(){
    public Application getAnApplication(){

      //retrieve application data from database scheama 1 , build object and return it.
    }
}

public ConcreteApplicationTwo(){
    public Application getAnApplication(){

      //retrieve application data from database scheama 2 , build object and return it.
    }
}

并使用某种工厂建立给用户正确的具体Application类:

公共类工厂{
    公共应用程序getApplicationImplementation(){
         如果(cond1){
               返回新的ConcreteApplicationOne();
         }其他{
               返回新的ConcreteApplicationTwo();
         }
    }
}

标签:database-schema,java,design-patterns
来源: https://codeday.me/bug/20191208/2088541.html