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.
我一直在为 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.