可以将非序列化Java对象存储在mySQL BLob列中吗?

时间:2011-05-06 12:45:21

标签: java mysql serialization blob

我有一个可序列化的java对象。它是一个外部库,我不能将它们标记为可序列化。这里有几个问题..

1)它们仍然可以写入mySQL BLOB列吗?

2)还有其他方法可以将它们保存在我的JVM之外吗?

任何帮助都会有用。

由于 -a

5 个答案:

答案 0 :(得分:2)

1)你试过吗?

2)当然,例如在XML文件中。我个人使用XStream

答案 1 :(得分:2)

  

1)它们仍然可以写入mySQL BLOB列吗?

是的,但您需要实现序列化算法来生成字节。此外,您需要确保可以访问所有必需的内部状态。

  

2)还有其他方法可以将它们保存在我的JVM之外吗?

查看XStream

答案 2 :(得分:1)

好吧,它们不必是“Java默认二进制序列化方案”的可序列化,但它们必须是可序列化的以某种方式,根据定义:你必须有一些方法将数据提取到字节数组中,然后从该数组中重新构造它。

你是如何做到这一点取决于你 - 周围有很多的序列化框架/协议/等。

答案 3 :(得分:0)

Serializable本身没有做任何事情,它只是一种提示类可以可序列化的方法。有些工具需要存在接口,而有些则不需要。

我没有考虑将java对象存储为mySQL BLOB,但是如果可序列化的java对象可以,那么我看不出为什么它不可能。

  

2)还有其他方法可以将它们保存在我的JVM之外吗?

有许多方法可以在JVM之外保留对象。将其存储到磁盘,ftp,网络存储等,并且存在用于以各种格式(例如XML等)存储的工具。

答案 4 :(得分:0)

  1. 他们可以,但不能自动。您必须提出自己的代码来构造对象的二进制表示,将二进制数据保存到数据库,然后在从数据库中提取数据时重新构建对象。

  2. 是的,但同样不会是自动的。您必须提出自己的对象二进制表示,决定如何存储它,然后在想要阅读它时重新构建对象。