在单列数据库中存储各种对象类型

时间:2012-09-16 07:03:14

标签: java database serialization

我在Java工作。我有一个名为Command的类。此对象类存储作为基元的参数的变量List(主要是int和double)。参数的类型,编号和顺序特定于每个命令,因此List是Object类型。我不会根据这些参数值是什么来查询表,所以我想我会将它们连接成一个String或以某种方式序列化它们。我认为这可能是一种更好的方法来规范化表格,因为我每次都必须加入,而且这个表格会很快变大。 (编辑:Command对象还存储一些其他不会被序列化的成员,例如String以标识命令的类型,以及发布时间的时间戳。)

所以我有两个问题: 我应该将它们变成分隔的字符串吗?如果是这样,我如何将每个对象作为String而不知道将它们转换为哪种类型?我尝试循环并使用.toString方法,但这不起作用。它似乎返回null。

或者是否有某种方法可以将数组的数据序列化到数据库的列中?我读到了序列化,它似乎是序列化整个类的上下文。

1 个答案:

答案 0 :(得分:2)

我会使用JSON序列化程序和反序列化程序(如Jackson)在DB中存储和检索这些命令对象,而不会丢失特定的类型信息。另外,我会让这些命令实现一个通用接口,并将它们存储在命令列表中,而不是存储在对象列表中。