Javafx-从数据库中预加载外部数据的常用方法是什么?

问题描述 投票:0回答:1

我对Javafx来说还很陌生,所以如果这可能是一个明显的问题,请对不起。我正在使用Main类进行内部整理,并从两个json文件中预加载内容,以便每次应用程序需要获取数据时,都不需要读取文件。在我看来,这是最有效的方法。然后,只要业务逻辑需要数据,它就可以调用静态列表,并且就在其中。但是,这似乎完全违背了整个OOP范式,并且在尝试对其进行测试时已经让我头疼。那么,在那里执行此操作的常见方法是什么?

1)如何在程序一开始就预加载数据库而又以后又很难访问?

2)如何保持OOP并使该预加载对象在应用程序的整个运行过程中持久存在?

json中的数据是字符串,需要与TCP上的传入数据进行实时比较。因此需要高效。抱歉,如果已经回答了这个问题,但是我似乎找不到合适的策略或方法来解决此问题。


    public static List<DrefData> database;
    public static List<LayoutData> layout;

    public static void main(String[] args) {

        Initialize.logReportLevel("trace");

        // load databases
        DrefDataIO io = new DrefDataIO();
        LayoutDataIO lio = new LayoutDataIO();
        database = io.loadDatabase();
        layout = lio.loadLayoutDatabase();

        // open main window
        MainWindow.main(args);
    }
}
java database oop javafx static
1个回答
0
投票

首先,您要实现的是一个简单的缓存,它是数据库的内存中表示形式,可以快速访问:

  1. 首先,您需要实现Singleton Pattern。这将确保您只有数据库实例在同一上下文中可供所有人访问。这将使访问变得更容易,因为您将拥有一个专用于该对象的对象,而不是将其放在Main类中。
  2. 尽管这解决了两个问题,但它违反了单一责任原则,并且仍然很难模拟,因为单例必须具有私有的构造函数,因此只能由命名的构造函数调用一次(不是Java专家,而是查看PowerMock我认为它允许)。

而且,您是否在运行时更改json?还是只读

© www.soinside.com 2019 - 2024. All rights reserved.