当前位置: 首页 > 知识库问答 >
问题:

在将对象放入MySQL之前,我需要序列化它吗?[副本]

秦新立
2023-03-14

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

共有1个答案

汪建白
2023-03-14

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

通常,以其序列化形式存储在数据库中的对象为blob。但是这种方法有几个缺点,可能最重要的是它对读取数据施加了限制:您无法在不费力的情况下从不同的语言读取数据;另一个原因是数据是以人类无法读取的形式存储的。另一方面,这种方法可以使您在下一次从数据库中读取它后不必再次解组它。

您还可以将其存储为string,并以人类可读的形式存储,如XML或JSON。我看不出将其存储为JSON而不是XML有什么价值,只是JSON可能会为您节省一些字节,但我认为这样做不值得。使用这种方法,数据以人类可读的形式存储,并且可以使用任何语言轻松地读取和解封,而不是序列化的形式。虽然这些优点并不是免费的,但您也有一个缺点:它的体积要大得多,但这不应该引起您的关注,除非您对存储有严格的要求。

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

 类似资料:
  • 问题内容: 我继承了一个使用Hibernate 3.0连接到SQL Server数据库的Websphere Portal项目。 这个项目中大约有130个Hibernate表类。它们都实现了可序列化。它们均未声明serialVersionUID字段,因此Eclipse IDE对所有这些类均显示警告。 这些类是否真正需要实现Serializable? 如果是这样,是否有任何工具可以一次将生成的seri

  • 问题内容: 如何在JavaScript中将对象序列化为JSON? 问题答案: 您正在寻找。

  • 我正在使用mockito作为junit。在创建对象的模拟时,我有疑问。我有一个名为DBConnect的类。我需要数据库属性,如dbname、凭据等。PatientDetails使用这个类。现在,当我为PatientDetails编写junit时。所以我使用以下代码。 用这个我不能得到正确的结果。

  • 我怎么才能修好这个?我需要用JSON编写响应。一个解决方案是非常赞赏的。

  • 问题内容: 我有一个实体: 然后我有一个控制器,其目的是检索书籍,我的问题是,流派字段包含在控制器的json响应中。有什么办法可以排除杰克逊序列化对象时延迟加载的那些字段? 这是我的ObjectMapper的配置: 谢谢! 我无法将其标记为JsonIgnore,因为它将永远在序列化框中。有时候,我将需要随书一起检索体裁,到那时,我将在查询中使用“获取联接”,因此它不会为null。 问题答案: 你可