可序列化和不可序列化对象保存到数据库之间的区别

Posted

技术标签:

【中文标题】可序列化和不可序列化对象保存到数据库之间的区别【英文标题】:Difference between Serializable and non Serializable object save into database 【发布时间】:2015-02-14 08:40:54 【问题描述】:

当对象可序列化或不可序列化时,将数据对象保存到数据库有什么区别。

例如:我有一个名为 Book 的域类

class Book implements Serializable
private int id;
private String name;
//getter and setter

没有实现Serializable接口

class Book 
private int id;
private String name;
//getter and setter

现在我要将 Book 对象存储到数据库表中。 我知道在实现 Serializable 时,数据应该转换为字节流。那么将数据保存到db时,以上两个选项有什么区别

谁能纠正我 谢谢 阿米拉

【问题讨论】:

【参考方案1】:

总的来说,没有区别。将实体作为Serializable 用于持久性不是必须的,并且严格取决于您用于持久层的框架。

例如Hibernate 根本不需要,尽管根据 JPA 规范创建实体 Serializable 是最佳实践 -

如果将实体实例作为分离对象按值传递 (例如,通过远程接口),实体类必须实现 可序列化接口。

因此,如果您需要分离实体,例如在 HTTP 会话中,或传递到另一层、序列化它们等 - 您需要将实体设置为 Serializableobjects。

【讨论】:

以上是关于可序列化和不可序列化对象保存到数据库之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

将自定义可序列化对象绑定到控件,以便用户和加载/保存首选项

Serializable和Parcelable的区别

Serializable 和 Parcelable 区别

Serialzable和Parcelable的区别?Bunder传递对象为什么需要序列化?

序列化和初始化

json中load和loads区别