Java 在将对象放入MySql之前,是否需要对其进行序列化?

Java 在将对象放入MySql之前,是否需要对其进行序列化?,java,mysql,serialization,jackson,jaxb,Java,Mysql,Serialization,Jackson,Jaxb,我已经用JAXB反序列化了一个XML文件。现在,由于xml文件,我有了包含信息的类。现在我需要将数据放入mySql,是否需要再次使用JSON(例如)对其进行序列化?如果要将对象放入数据库列,则需要对其进行序列化 但是-有很多原因不应该将序列化对象放入数据库列中。最重要的一点是tatabase表中的序列化数据(JSON)不可查询。。。除了使用像%这样的%最粗糙的方法之外 更好的方法是将Java类的字段映射到表的列。这可以手动完成,也可以使用ORM技术(如Hibernate/JPA)完成 另一种选择

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

如果要将对象放入数据库列,则需要对其进行序列化

但是-有很多原因不应该将序列化对象放入数据库列中。最重要的一点是tatabase表中的序列化数据(JSON)不可查询。。。除了使用像%这样的
%最粗糙的方法之外

更好的方法是将Java类的字段映射到表的列。这可以手动完成,也可以使用ORM技术(如Hibernate/JPA)完成


另一种选择是使用所谓的JSON数据库,如CouchDB或MongDB。

使用mySQL或任何其他关系数据库的目的是将数据存储为单独的属性。在关系数据库中使用JSON将把所有数据输入到一列中,而不是为每个数据段单独设置列


如果您真的想以JSON格式存储数据,可以尝试使用NoSQL数据库,如。在MongoDB中,数据是以JSON格式存储的。

好吧,MySQL不能将您的Java对象直接存储在数据库中;您需要将其转换为MySQL支持的

通常情况下,存储在数据库中的对象都是作为
BLOB
存储的。不过,这种方法有两个缺点,可能最重要的一个是它对读取数据施加的限制:你不能不费力地从不同的语言读取数据;另一个原因是数据以人类无法读取的形式存储。另一方面,这种方法可以避免您在下次从数据库读取数据后再次对其进行解组

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


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

请不要这样做。这违背了使用数据库的目的