Erstellt einen Objekt-Ausgabestream von einem Objekt

8

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:

%Vor%

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 ...

    
coubeatczech 20.05.2010, 11:52
quelle

3 Antworten

7

Speichern Sie es stattdessen in einem Byte-Array. Sie können dafür ByteArrayOutputStream verwenden. Auf diese Weise können Sie verwenden PreparedStatement#setBytes() .

%Vor%

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.

    
BalusC 20.05.2010, 11:55
quelle
5
%Vor%

So, jetzt haben Sie ein Byte-Array und tun, was Sie damit wollen.

    
Petar Minchev 20.05.2010 11:54
quelle
0

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.

    
Nico 20.05.2010 11:55
quelle