Java Beans: 在以下示例中为什么要实现Serializable接口?

3

请检查此链接:https://dev59.com/wHI-5IYBdhLWcg3wFkOO - NPKR
1
你正在从可能是互联网上最臭名昭著的编程错误信息网站中进行教程。请尝试寻找更好的网站。 - user207421
2个回答

2

您提供的教程并没有使用Serializable类。

他们可能将其添加进去以遵循通用的Java bean模式,但是在通过JDBC将其写入数据库时并不需要。您对此感到困惑是正确的,因为没有解释。

Serializable用于ObjectOutputStream,例如通过RMI编写到文件或通过网络传输bean。因此,对于数据传输对象,支持此功能并不是坏事。


我明白了,非常好的回答,对我来说非常成功。我只有一个问题:我可以将对象的状态作为一组实现可序列化接口的位存储在数据库中吗?我这么说是因为您可能想要存储具有比简单字符串或整数更复杂属性的对象(例如映射或数组列表)。 - felipecamposclarke
1
是的,您可以将可序列化对象转换为byte[](二进制数据),然后将其放入数据库中。但是,它就不能在SQL中查询了(因为数据库不知道这些字节的含义)。 - Thilo

-1
Java提供了一些类来支持将对象状态写入流并从流中恢复对象。 java.io.Serializable 是一个标记接口,它提供了能力将你的类(实现Serializable)的对象状态序列化到数据库表、文件或通过网络传输等。

2
不,不是这样的。JDBC setString/setInt 用于存储对象状态。 - Thilo
我了解通过可序列化接口(通过将其转换为一组比特位)可以保存对象状态的方法,但在您提供的链接中,要持久化的类属性像任何其他数据一样存储在数据库中(即使没有使用可序列化接口也可以这样做)。我的理解是正确的吗? - felipecamposclarke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接