首先要说的是,Hibernate中ORM里对应的映射文件BEAN,必须实现序列化.因为BEAN里的数据需要存入数据库(要转化为二进制保存),进行存取工作.
JAVA类的数据 ,如果要进行相关的存储工作(如写文件,网络传输,写数据库等),那么这个数据的类 就必须实现序列化接口 (java.io.Serializable).
序列化 : 把对象转换 为二进制数据(如网络传输,存储数据库等),必须实现序列化接口 (java.io.Serializable).
持久化 : 把对象保存 在介质上(如写文件,读文件不是), 没有接口实现,一般指方法调用.
如果按照存储介质和生命周期的长短划分,所有的数据都以两种形式存在,其中一种是保存于内存中的运行时对象,另一种则是存储于持久化物理介质中的文件,比如数据库文件等。数据的持久化关注于相同的数据在不同形态数据之间的转化,解决的是如何将内存对象持久化存储,以及从物理介质中加载数据并创建内存对象。
数据的持久化是序列化的又一个典型的应用,对象只有在序列化之后才能进行持久化存储,从持久化存储介质加载的数据通过反序列化转变成运行时对象。