我知道序列化是什么,但是我没有找到任何描述后者的真实实际示例(利用 JAVA_OBJECT 映射将对象保存在数据库中)。我是否必须先序列化对象然后将其保存到数据库中?
问问题
2561 次
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 回答