在没有SQL或任何数据库服务器的情况下,在Java应用程序中保存数据的最佳方法是什么?

在没有SQL或任何数据库服务器的情况下,在Java应用程序中保存数据的最佳方法是什么?,java,netbeans,persistence,javadb,Java,Netbeans,Persistence,Javadb,我想创建一个需要存储数据的桌面应用程序。此应用程序可用于各种pc。所以,我不想安装sql server和更多的应用程序来实现这一点。我只想创建一个包含所有存储数据的文件,使备份更容易,安装速度更快。 我想使用JSON或XML文件,或Excel(.xmls),但这似乎很难执行搜索或其他操作。 所以,在实施之前,我需要一个意见 您可以使用或SQLite。它取决于您必须存储的数据。 另一个解决方案是使用GSON或 Gson示例: public static class Entity { vol

我想创建一个需要存储数据的桌面应用程序。此应用程序可用于各种pc。所以,我不想安装sql server和更多的应用程序来实现这一点。我只想创建一个包含所有存储数据的文件,使备份更容易,安装速度更快。 我想使用JSON或XML文件,或Excel(.xmls),但这似乎很难执行搜索或其他操作。 所以,在实施之前,我需要一个意见

您可以使用或SQLite。它取决于您必须存储的数据。 另一个解决方案是使用GSON或

Gson示例:

public static class Entity {
    volatile int id;
    String name;
    transient long random;

    public Entity(int id, String name) {
        this.id = id;
        this.name = name;
    }
}
//Create new entity
Entity entity = new Entity(100, "name");
entity.random = 1234;

//Serialize to JSON. Then you can save string to file
String json = gson.toJson(entity); // {"id":100,"name":"name"}
// On application start you can deserialize your entity from file
Entity read = gson.fromJson(json, Entity.class);

单用户数据库-比如H2?内存中的java数据库怎么样谢谢你们。javadb显示了easiler选项,您能解释一下您的用法吗?我看了文件:。但不清楚它是否满足我的需要。“嵌入式数据库不应与诸如SQLite之类的内存数据库混淆。在内存数据库中,数据完全存储在主内存中,以实现更快的响应,而无需永久存储。”因此,Java DB不持久化数据?SQLite解决了我的问题。但是,我不能在数据库中插入和更新数据。有更多的解决方案吗?或者让我看一个json序列化的例子。为什么不能在数据库中插入和更新数据?你可以像json或xml等其他文件一样将SQLite db文件存储在你的app dir中。我阅读了Oracle和其他博客的文档,我知道SQLite只能进行read操作。其他操作(如插入和更新)不起作用。但是,总而言之,在netbeans内部,一切都可以工作,但是当我创建jar文件时,SQLite停止工作。我也创建了一个maven项目,但没有解决这个问题。