这可能看起来很简单,但我在任何地方都没有得到满意的答案。
为什么我们需要序列化?
答案我发现到处都是 -
转换字节流中的对象并存储在DB中。
但我的问题是 - 如果不使用序列化,我们不能这样做吗?如果不是我们如何将数据存储在DB中?
请清楚解释一下,如果可能,请举个例子
序列化不是将对象存储在数据库中。
它是将一个对象转换为一个字节流。该字节流确实可用于将其存储到数据库中,但它也可用于将其保存到文件中或通过套接字(here is an example)发送。
不使用序列化我们不能这样做吗?
实际上,使用序列化将数据存储在数据库中是非常罕见的。大多数时候(我会说99%)主要通过JDBC工具(如Hibernate)使用ORM。
因为数据是作为字节流通过网络传输的,所以不能将Object
放在线路内。
在JDBC的情况下 - 由Driver
本身以适当的格式执行自己的序列化。
一般来说,这不是关于编程,而是一般的网络结构。
数据遍历以下路径:
在最后一点,它转换为字节流并物理地穿过网络。