实体类实现序列化接口,才能存到数据库吗?那为什么。。
@EntitypublicclassPerson{@Id@GeneratedValueprivateIntegerid;privateStringname;private...
@Entity
public class Person {
@Id @GeneratedValue
private Integer id;
private String name;
private Integer age;
------------------------------------------------
可是我这个实体类,没有实现序列化那个接口,也能存到数据库,这是为什么呢?
想不通!我是用的注解和hibernate框架弄的!
难道说不实现序列化接口也能保存数据?不应该啊。。 展开
public class Person {
@Id @GeneratedValue
private Integer id;
private String name;
private Integer age;
------------------------------------------------
可是我这个实体类,没有实现序列化那个接口,也能存到数据库,这是为什么呢?
想不通!我是用的注解和hibernate框架弄的!
难道说不实现序列化接口也能保存数据?不应该啊。。 展开
6个回答
展开全部
你用habernate保存数据,只要XML文件配置好了,实体类DAO层都没错,调用SAVE方法 然后COMMIT就可以保存数据。
序列化主要就是把你要保存的数据,转换成字节码的形式,反序列化就是把字节码变成数据。
你直接把数据通过本机服务器提交给硬盘,确实不需要序列化。
但是你在网络传输的时候就不行了,你传给别人一个东西,它接收了所有的字节码之后,却不知道你原本传的是什么对象,也就没法把这个东西按照原始去解析。
你序列化之后,在传给对方,他接收到的时候会按照序列化特定的模式,给反序列化出来,也就是说你传了什么,对方接收的也是什么,解析成功,可以正确使用方法以及属性。
序列化主要就是把你要保存的数据,转换成字节码的形式,反序列化就是把字节码变成数据。
你直接把数据通过本机服务器提交给硬盘,确实不需要序列化。
但是你在网络传输的时候就不行了,你传给别人一个东西,它接收了所有的字节码之后,却不知道你原本传的是什么对象,也就没法把这个东西按照原始去解析。
你序列化之后,在传给对方,他接收到的时候会按照序列化特定的模式,给反序列化出来,也就是说你传了什么,对方接收的也是什么,解析成功,可以正确使用方法以及属性。
更多追问追答
追问
你没明白我的意思,我不是问什么叫序列化
我问你我没实现序列化接口Serializable
为什么还可以保存对象到数据库呢
追答
本来就是可以保存的啊。你想想最开始学习数据库和JAVA的时候,我们直接写类,写保存方法,然后连接数据库,保存数据,当时的对象属性,不也是没有序列化就直接保存的吗。
实体类只是表的抽象形式而已。理所当然可以保存啊。
保存数据 本来就和序列化没有关系。。。
连接数据库,调用保存方法,没有异常直接提交,然后关闭连接,无论你用hibernate还是以前的,或者SSH框架,都是一个道理。 提交数据只是事物在没有发生异常的时候,成功把JAVA里模拟的数据根据对应的表字段存储到表中。 它和序列化,没有一点关系。
展开全部
这是两回事。
简单的说:
对象的序列化 是在 对象进行保存和传输的时候 进行的,如果没有序列化,速度和完整性
都会收到影响
而你的实体类 并没有对对象进行保存,只是对对象的成员的值进行保存
简单的说:
对象的序列化 是在 对象进行保存和传输的时候 进行的,如果没有序列化,速度和完整性
都会收到影响
而你的实体类 并没有对对象进行保存,只是对对象的成员的值进行保存
更多追问追答
追问
哦 还是你说的有道理,就是说我没序列化,保存的是实体类的属性字段到数据库而已,并没保存这个类的对象是吧?不牵扯到对象是吧,所以没实现Serializable接口,也照样可以把属性字段存到数据库里去
追答
只是建议对实体类进行序列化
因为有些软件要对对象进行保存 如果软件崩溃 可以通过保存的对象信息进行恢复
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你对IO流了解多少?可以说实现序列化接口只是跟IO操作有关
如果你没有接触到过IO,我在这里也说不清楚,仅仅只是看书面文字是很少有人能理解IO流的,如果你想要学习一下IO方面的知识,建议你找一些视频资料看一下,最好可以找个懂的人当面讲解
实不实现序列化接口跟数据库的访问没有任何关系
如果你没有接触到过IO,我在这里也说不清楚,仅仅只是看书面文字是很少有人能理解IO流的,如果你想要学习一下IO方面的知识,建议你找一些视频资料看一下,最好可以找个懂的人当面讲解
实不实现序列化接口跟数据库的访问没有任何关系
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的事 Serializable这个接口么? 不一定非得实现
实现他是了Serializable跨jvm用的 同一个jvm上可以不用实现
实现他是了Serializable跨jvm用的 同一个jvm上可以不用实现
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你往数据库存的是这几个基本属性,这些属性类型(Integer、String)都实现了序列化接口,当然可以存进去了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |