gpt4 book ai didi

java - 使用多个数据库模式

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:52 25 4
gpt4 key购买 nike

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

例如,有一个实体“Application”。对于不同的模式,它可以通过以下方式检索:

1) SELECT * FROM apps WHERE 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 IS NOT NULL

等等……

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

最佳答案

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

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

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.
}
}

并使用某种工厂来构建为用户提供正确的具体应用程序类:

公共(public)类工厂{ 公共(public)应用程序 getApplicationImplementation(){ 如果(条件 1){ 返回新的 ConcreteApplicationOne(); }别的 { 返回新的 ConcreteApplicationTwo(); } }

关于java - 使用多个数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7076267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com