Java 桌面持久性的反对 dB 数据库

Objectio dB database for Java desktop persistance

我一直在为 Java 尝试对象 ox io。它在 Android 上运行良好,因此我决定在 Java 桌面实现上使用它。

我面临的问题是,我可以在 运行 时保存我的数据,但是当我重新启动应用程序或桌面应用程序时,数据消失了,被遗忘了,这很奇怪。我试图寻找解释,但没有找到任何解释。谁能帮忙或知道这是为什么?与此同时,我已经恢复使用 SQLite。该应用程序旨在非常大并且具有很多多线程。

这是一个示例


import io.objectbox.BoxStore;
import io.objectbox.DebugFlags;
import lombok.SneakyThrows;

import java.io.File;
import java.io.IOException;

public class DBObjectManager {

    public static DBObjectManager  objectIOAccessInstance ;
    private BoxStore store;


    private DBObjectManager() {
        File tempFile = null;
        try {
            tempFile = File.createTempFile("objectdb", "");
        } catch (IOException e) {
            e.printStackTrace();
        }
        tempFile.delete();
         store = MyObjectBox.builder()
                .directory(tempFile)              
                .debugFlags(DebugFlags.LOG_QUERIES | DebugFlags.LOG_QUERY_PARAMETERS)
                .build();
    }

    public static DBObjectManager getinstance() {
        if (objectIOAccessInstance == null) {
            objectIOAccessInstance = new DBObjectManager();
        }
        return objectIOAccessInstance;
    }

    public BoxStore getStore() {
        return store;
    }
}

您每次执行应用程序时都在创建一个新的临时文件。我想这就解释了你的问题。

来自文档:

creates a new empty file in the specified directory. deleteOnExit() method is called to delete the file created by this method.