首页 > 解决方案 > 我需要在将对象放入 MySql 之前对其进行序列化吗?

问题描述

我已经用 JAXB 反序列化了一个 XML 文件。现在我有了带有信息的类,这要归功于 xml 文件。现在我需要将数据放入 mySql 中,是否需要使用 JSON 再次序列化?

标签: javamysqlserializationjacksonjaxb

解决方案


那么,MySQL 不能将您的 Java 对象直接存储在数据库中。您需要将其转换为 MySQL 支持的原始数据类型

通常,对象以其序列化形式存储在数据库中,如BLOB. 但是,这种方法有几个缺点,可能最重要的一个是它对读取数据的限制:如果不费吹灰之力,就无法从不同的语言读取数据。此外,数据以人类不可读的形式存储。另一方面,这种方法可能会避免您在下次从数据库中读取它之后再次对其进行解组。

您也可以将其存储为string人类可读的格式,例如 XML 或 JSON。我看不到将它存储为 JSON 而不是 XML 的任何价值,除非 JSON 可以为您节省一些额外的字节,但我认为这样做不值得。通过这种方法,数据以人类可读的形式存储,并且可以使用任何语言轻松读取和解组,这与序列化形式不同。虽然这些优点不是免费的,但你也有一个缺点:它的尺寸要重得多——但除非你对存储有严格的要求,否则一开始你不应该担心。

我不建议将对象存储为单个值,您可能希望将每个字段存储在单独的列中。在这种情况下,您需要一个ORM 工具来帮助您。


推荐阅读