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

标签 java database serialization

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

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

或者有什么方法可以将数组的数据序列化到数据库的列中吗?我阅读了有关序列化的内容,它似乎是针对序列化整个类的上下文。

最佳答案

我会使用像 Jackson 这样的 JSON 序列化器和反序列化器在不丢失特定类型信息的情况下在数据库中存储和检索这些命令对象。附带说明一下,我会让这些命令实现一个通用接口(interface)并将它们存储在命令列表中而不是对象列表中。

关于java - 在数据库的单列中存储各种对象类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12445029/

相关文章:

java - 反序列化 Java LinkedList

json - Ktor:使用List作为多平台中的根目录来序列化/反序列化JSON

sql - MS SQL 选择表

java - 当我在 ChannelHandlerContext 上调用 close() 时,channelInactive() 没有被调用

java - 如何从 Jersey REST 服务方法返回 PNG 图像到浏览器

java - 调度程序 servlet 抛出异常 : NumberFormatException

数据库:表是否应该始终规范化并具有主键?

r - 使用 Power BI 中的 Office 数据连接 (.odc) 文件连接到 R 中的数据库

java - 什么是 transient 和 volatile 修饰符?

java - Spring中实例化依赖关系