序列化和通过JDBC节省的目的是JAVA_OBJECT的区别

问题描述 投票:1回答:2

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

java mysql database jdbc
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接口。


1
投票

序列被用于一个对象和Marshall它的状态保存到流和与远程进程共享。其他过程只需要具有相同的类版本反序列化流返回的对象。

与数据库方法的问题是,你需要将数据库暴露,甚至到远程进程。这通常是不这样做,由于各种原因,主要是安全性。

© www.soinside.com 2019 - 2024. All rights reserved.