ERLEDIGT
JA
JA
ANTWORTEN
0
0
ZUGRIFFE
824
824
EMPFEHLEN
-
Hallo zusammen.
Ich muss für ein Projekt Java Objekte in einer Datenbank abspeichern. Dabei handelt es sich um Objekte der Klassen Double, String, Arrays verschiedener Dimensionen dieser beiden Klassen und Map. Ich muss dafür eine Klasse mit den Funktionen "writeObject(String name, Object o)" und "Object loadObject(String name)" schreiben. LoadObject soll dabei natürlich den Typ der Daten beibehalten. Wenn ich also z.B. ein Double mit writeObject speicher, dann soll loadObject auch ein Objekt vom Typ double zurückgeben.
Nun stehe grundsätzlich schonmal vor der Frage wie ich das DB-Schema aufbaue. Momentan hab ich mich dafür entschieden, die Daten einfach in einem Blob zu speichern, egal von welchen Typ sie sind. Meint Ihr das ist der richtige Weg? Oder sollte ich lieber verschiedene Spalten/Tabellen anlegen, je nachdem um was es sich für einen Typ handelt?
Wie erwähnt speicher ich zur Zeit alles in einem Blob. Habe mich im Internet ein wenig umgeschaut und kam dann letztendlich auch auf folgende Implementierungen für meine Funktionen:
Object loadObject(String name)
Code :1 2 3 4 5 6 7 8 9 10
... pstmt = conn.prepareStatement("SELECT data FROM input WHERE name = ?"); pstmt.setString(1, name); ResultSet rs = pstmt.executeQuery(); rs.next(); Blob b = rs.getBlob(1); InputStream is = b.getBinaryStream(); ObjectInputStream ois = new ObjectInputStream(is); return ois.readObject(); ...
writeObject(String name, Object o)
Exception-Handling spare ich mir und Euch hier, hab ich aber natürlich entsprechend gemachtCode :1 2 3 4 5 6 7
... PreparedStatement pstmt = conn.prepareStatement("INSERT INTO input(name, data) VALUES (?, ?)"); pstmt.setString(1, name); pstmt.setObject(2, o); pstmt.executeUpdate(); pstmt.close(); ...
Diese Lösung funktioniert auch, allerdings nur, wenn die Objekte keine Strings oder Doubles waren! Habe ich einen String in die DB geschrieben und möchte ihn wieder lesen, so wird eine java.io.StreamCorruptedException geworfen. Gleiches bei Doubles.
Kann mir da jemand helfen?
Viele Grüße,
Takki
Edith: Ok, habe für das Problem eine Lösung gefunden. Wenn man die write-Funktion wie auf http://www.javabeginner.com/uncatego...-serialization beschrieben implementiert, dann haut alles hin
Geändert von takki (05.01.11 um 15:18 Uhr)
Ähnliche Themen
-
Wo Datenbank speichern?
Von gander im Forum .NET DatenverwaltungAntworten: 8Letzter Beitrag: 19.10.10, 08:59 -
Model-Objects speichern
Von maksbor80 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 25.08.08, 13:29 -
XML in Datenbank speichern
Von Radhad im Forum PHPAntworten: 1Letzter Beitrag: 02.06.07, 00:05 -
Speichern, Verwende C#, MSSQL-Server,Map-Objects
Von Kai_Jack im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 22.08.05, 19:53 -
Checkbox in Datenbank speichern
Von mccoy im Forum PHPAntworten: 6Letzter Beitrag: 30.11.04, 15:13





Zitieren
Login





