create object output stream from an object
database, java, jdbc, objectoutputstream
Solution
Store it in a byte array instead. You can use `ByteArrayOutputStream` for this. This way you can use `PreparedStatement#setBytes()`.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(new Date());
oos.close();
// ...
preparedStatement.setBytes(i, baos.toByteArray());
That said, this is pretty a good smell. Are you sure that you need to serialize Java objects into a database? This way they are unindexable and unsearchable. If you for example store each `Person` serialized in the DB, you cannot do `SELECT * FROM person WHERE name = 'John'` anymore. The normal practice is to do a 1:1 mapping of the entity and the DB table. The `Date` for example can perfectly be stored in a `DATETIME`/`TIMESTAMP` column.
Problem
I want to create on `ObjectOutputStream`, but I don't want to persist the object in a file, so how to do that? All the tutorials(that I found) say only about the file way: ``` FileOutputStream fos = new FileOutputStream("t.tmp"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(new Date()); oos.close(); ``` I want to store the object into a database, so I need to specify a stream in method `setBinaryStream()` from class `PreparedStatement`. Thanks for answering...