Java 什么样的数据库适合存储我的对象?

Java 什么样的数据库适合存储我的对象?,java,database,Java,Database,我正在尝试使用Java开发一个基于插件的小型训练计算器,作为一个家庭项目(设计时考虑了重量训练) 应用程序核心提供插件可能与之接口的某些服务。其中之一就是所谓的“数据服务”,它允许插件存储数据并检索数据。现在,我觉得我的对象的构建方式与关系数据库,甚至与对象关系数据库不匹配。但我希望能够进行一些搜索和查询,如果我的对象存储为二进制文件,这可能不可行,也不容易实现 问题是我想存储一个条目(LogEntry对象),它是一个由一个或多个对象组件组成的对象,它同样由一个或多个对象组件组成 我的对象如下所

我正在尝试使用Java开发一个基于插件的小型训练计算器,作为一个家庭项目(设计时考虑了重量训练)

应用程序核心提供插件可能与之接口的某些服务。其中之一就是所谓的“数据服务”,它允许插件存储数据并检索数据。现在,我觉得我的对象的构建方式与关系数据库,甚至与对象关系数据库不匹配。但我希望能够进行一些搜索和查询,如果我的对象存储为二进制文件,这可能不可行,也不容易实现

问题是我想存储一个条目(LogEntry对象),它是一个由一个或多个对象组件组成的对象,它同样由一个或多个对象组件组成

我的对象如下所示(伪代码):

//这就是插件本身
类日志
{
会员个人资料;
成员日志;//理想情况下,这是一个包含日志项的表
…//方法
}
/* ================= */
//日志类的一部分
类PersonalStats
{
成员日期出生日期;
…等等,所有的私人物品
…//方法
}
//日志类的一部分
班级日志
{
成员名单条目;
…//方法
}
/* ================= */
//此类的对象应表示日志中的一个数据集
类日志条目
{
成员名单练习;
成员字符串注释;
成员日期;
…//方法
}
/* ================= */
课堂练习细节
{
会员练习;
成员名单热身;
成员集合模式工作集;
…//方法
}
课堂练习
{
成员字符串名称;
…//方法
}
类集合模式
{
成员整数集;
高级代表成员;
构件重量加倍;
…//方法
}
我的问题是:为了核心应用程序能够提供数据库支持,什么样的DBMS适合这种数据模式?我希望它不是特定于语言的


不过,我不确定数据库是否是未来的发展方向。因此,如果您有任何建议,请随时分享。

有时候,答案就在问题中。问题是,您希望将对象存储为一个巨大的表,这就是问题所在

如果您将每个类映射到一个表,那么似乎一切都会顺利进行


你真的应该看看春天的冬眠。我已经启动了许多应用程序,并使用这种组合使它们快速启动和运行。

您的应用程序对于相关实体来说是一个很好的例子。一些明显的关系是

  • Log-->一对一-->个人统计,日志
  • 日志-->一对多-->日志条目
  • LogEntry-->一对一-->ExerciseDetail
  • ExerciseDetail-->一对一-->练习
  • ExerciseDetail-->一对多-->设置模式

您可以整洁地将这些实体关系映射到数据库表,并按照Thom的建议,使用Hibernate之类的任何工具。使用

谢谢你的回答,它帮助了我。我有点太关注某些细节了,所以我没有注意到。谢谢,你说得对。我本想接受这两个答案,但我选择了另一个。
// This is the plugin itself
class Log
{
    member PersonalStats;
    member LogBook;    // ideally, this would be a table with the log entries

    ... // methods
}

/* ================= */

// part of Log class
class PersonalStats
{
    member Date birthdate;
    ... // etc., all the personal stuff

    ... // methods
}

// part of Log class
class LogBook
{
    member List<LogEntry> entries;

    ... // methods
}

/* ================= */

// an object of this class should represent one dataset in LogBook
class LogEntry
{
    member List<ExerciseDetail> exercises;
    member String comments;
    member Date date;

    ... // methods
}

/* ================= */

class ExerciseDetail
{
    member Exercise exercise;
    member List<SetSchema> warmUps;
    member SetSchema workSet;

    ... // methods
}

class Exercise
{
    member String name;

    ... // methods
}

class SetSchema
{
    member int sets;
    member int reps;
    member double weight;

    ... // methods
}