1

我知道序列化是什么,但是我没有找到任何描述后者的真实实际示例(利用 JAVA_OBJECT 映射将对象保存在数据库中)。我是否必须先序列化对象然后将其保存到数据库中?

4

2 回答 2

3

在 MySQL 的情况下,您不必先序列化对象,驱动程序会为您完成。只需使用PreparedStatement.setObject方法。

例如,首先在 MySQL 中创建表:

create table blobs (b blob);

然后在 Java 程序中创建准备好的语句,设置参数并执行:

    PreparedStatement preps;
    preps = connection.prepareStatement("insert into blobs (b) values (?)");
    preps.setObject(1, new CustomObject());
    preps.execute();

不要忘记要存储的对象的类必须实现Serializable接口。

于 2013-08-17T15:44:24.130 回答
1

序列化用于保存对象的状态并将其编组为流并与远程进程共享。另一个进程只需要具有相同的类版本即可将流反序列化回对象。

数据库方法的问题是您甚至需要将数据库公开给远程进程。由于各种原因,主要是安全性,通常不会这样做。

于 2013-08-17T14:50:33.647 回答