Ich möchte auf ObjectOutputStream
erstellen, aber ich möchte das Objekt in einer Datei nicht beibehalten, also wie geht das? Alle Tutorials (die ich gefunden habe) sagen nur über den Dateiweg:
Ich möchte das Objekt in einer Datenbank speichern, daher muss ich einen Stream in der Methode setBinaryStream()
von der Klasse PreparedStatement
angeben.
Danke für die Antwort ...
Speichern Sie es stattdessen in einem Byte-Array. Sie können dafür ByteArrayOutputStream
verwenden. Auf diese Weise können Sie verwenden PreparedStatement#setBytes()
.
Das heißt, das ist ziemlich gut riechen. Sind Sie sicher, dass Sie Java-Objekte in eine Datenbank serialisieren müssen? Auf diese Weise sind sie nicht indexierbar und nicht suchbar. Wenn Sie zum Beispiel jedes Person
serialisiert in der Datenbank speichern, können Sie SELECT * FROM person WHERE name = 'John'
nicht mehr tun. Üblicherweise wird eine 1: 1-Abbildung der Entität und der DB-Tabelle durchgeführt. Der Date
beispielsweise kann perfekt in einer DATETIME
/ TIMESTAMP
Spalte gespeichert werden.
So, jetzt haben Sie ein Byte-Array und tun, was Sie damit wollen.
Sie müssen speziell einen Ausgabestrom verwenden, um in eine Datenbank zu schreiben? Ich würde ernsthaft in Betracht ziehen, die Persistenz-API zu betrachten, bevor ich versuche, eine Ausgabestream-Implementierung zu schreiben. Da Verbindungsdetails usw. schwierig zu verwalten sind.
Werfen Sie einen Blick auf Link-Text und denken Sie daran, dass es auch in J2SE verwendet werden kann.
Tags und Links java database jdbc objectoutputstream