把对象保存在数据库的过程称为序列化,这个肯定不正确,序列化包括保存到数据库,但不仅限于数据库,保存到文件,或者其他任何内存之外的地方都是序列化。那么平时我写了一个javabean,然后通过JDBC把它存到了数据库里面,这种情况下我的javabean并没有实现序列化接口Serializable你的javabean没有实现Serializable,jdbc驱动实现了。

解决方案 »

  1.   

    大家都还没明白序列化的意思吧。
    序列化是对象的一种特定表示方式,序列化之后可以用来存储,也可以用来传输,不一定非要保存或者到内存之外的地方。
    持久化是把内存里的内容保存下来,比如到数据库、文件、网络等等任何长久保存的地方,持久化的格式也有很多种(我想也不用举例子了吧)。你说的jdbc实现了序列化接口,其实不是的,jdbc只是用来操作数据库的,真正用来持久化操作的是把javabean里的属性拿出来,放到sql语句里面执行,保存的数据库中的,跟Serializable没有丝毫关系。
    所以这是两个不同的概念。当然,把对象序列化了之后,保存到硬盘等等什么地方的,也叫做持久化,但只是持久化的一种。
      

  2.   

    序列化是一个标识,只是一个标记,如果你实现了这个接口,那你可以用ObjectOutputStream 这个类把对象写到本地或者是别处,这个过程叫做对象的持久化。
      

  3.   

    你按照我说得来。写一个javabean,先别实现Serializable接口,然后用ObjectOutputStream 写到本地吧,写到一个txt文件里去吧。肯定会给你抱NotSerializableException这个异常,这个异常代表这个bean没有被序列化,然后你在实现Serializable接口,就可以写到本地去了。Serializable就是起个标记作用