Java将对象写入MySQL-每个字段还是序列化字节数组?

Java将对象写入MySQL-每个字段还是序列化字节数组?,java,mysql,serialization,bytearray,field,Java,Mysql,Serialization,Bytearray,Field,我试图将可序列化的Java类的实例保存到MySQL数据库中。 据我所知,我有两个选择: 创建一个包含所有字段作为列的表,并根据数据库中保存的字段数据重新创建对象 序列化实例->获取字节数组->将字节数组保存到数据库->从字节数组重新创建实例 我的问题:哪种方式工作更快,哪种方式需要更少的空间 我的第二个问题是:如何使用jdbc轻松地从mysql数据库中编写和获取字节数组?保存序列化字节数组可能会节省空间,因为您不会将所有元数据都与表列、标题等关联。。。话虽如此,我不知道将单个字段保存在数据库中的

我试图将
可序列化的
Java类的实例保存到MySQL数据库中。
据我所知,我有两个选择:

  • 创建一个包含所有字段作为列的表,并根据数据库中保存的字段数据重新创建对象
  • 序列化实例->获取字节数组->将字节数组保存到数据库->从字节数组重新创建实例
  • 我的问题:哪种方式工作更快,哪种方式需要更少的空间


    我的第二个问题是:如何使用jdbc轻松地从mysql数据库中编写和获取字节数组?

    保存序列化字节数组可能会节省空间,因为您不会将所有元数据都与表列、标题等关联。。。话虽如此,我不知道将单个字段保存在数据库中的列中,与使用对象字节保存一列相比,在速度或存储空间方面会有任何明显的差异。如果要序列化并保存它,最好将其保存到文件中,而不使用数据库。更不用说,随着对象和模型的更改,加载旧版本可能会有问题。可维护性也将是一场噩梦

    就个人而言,我从来不会在数据库中保存对象的序列化字节数组,除非有非常具体的商业案例或理由这样做。我只需要创建表、列,并使用JDBC或您最喜欢的persistenace框架(如Hibernate)以这种方式将其持久化。将其保存为序列化字节数组似乎只会限制对数据的处理。如果不想创建数据库、表、列等。。。然后考虑将其序列化并写入文件。这可能会节省一些空间和时间,因为您不必维护数据库服务器。当然,您拥有的对象越多,文件越多,搜索和查询这些数据就越困难


    TL;DR:我只需要为您试图保存的数据创建数据库表。我看不出将其作为序列化字节数组保存在数据库中有任何明显的好处。

    如何将字节数组写入数据库并重新读取?谢谢。我还必须在网站上显示数据,我不能在web服务器上取消怪诞化。我将简单地使用数据库中的字段。