# Objekte in Datenbank speichern?



## GASTWirt (29. Mrz 2008)

Hallo,

wie kann ich bzw. womit kann ich objekte in Datenbanken speichern?

Beispiel: Ich habe formatierten(farbig, unterstrichen, fett etc. ) Text in einer JTable. Wie speichere ich die Formatierungen in einer MySql Datenbank ab ?? Käme dafür nicht ehr .xml in Frage. Würde sehr über eine Beratung freuen, da ich noch sehr unschlüssig bin.


----------



## bronks (30. Mrz 2008)

PreparedStatement pst ... ...

pst.setObjekt(..., ...);
...


----------



## GASTWirt (30. Mrz 2008)

bronks hat gesagt.:
			
		

> PreparedStatement pst ... ...
> 
> pst.setObjekt(..., ...);
> ...


Kann das Object auch von der Klasse XMLEncoder sein? sprich ich habe daten in einem xml...object und übergebe das object einer RMI Methode, welche server-seitig das object ausliest. Nun könnte man das auslesen ja mit setObject machen ODER mit den get/set Methoden die man für das xml object definiert hat was wäre denn besser?


----------



## byte (30. Mrz 2008)

Die Frage ob DB oder XML kann man so nicht beantworten. Das hängt primär vom Anwendungsfall ab. Wenn Du eine Multiuser-Anwendung schreiben willst, wo alle User die gleiche Datenquelle benutzen, dann wirst um eine DB kaum herum kommen. Wenn Du hingegen lediglich userabhängige Daten lokal speichern willst, ohne die Daten zwischen verschiedenen Usern bekannt zu machen, dann reicht ne lokale XML vollkommen aus.


----------



## GASTWirt (30. Mrz 2008)

byto hat gesagt.:
			
		

> Die Frage ob DB oder XML kann man so nicht beantworten. Das hängt primär vom Anwendungsfall ab. Wenn Du eine Multiuser-Anwendung schreiben willst, wo alle User die gleiche Datenquelle benutzen, dann wirst um eine DB kaum herum kommen. Wenn Du hingegen lediglich userabhängige Daten lokal speichern willst, ohne die Daten zwischen verschiedenen Usern bekannt zu machen, dann reicht ne lokale XML vollkommen aus.



ist auf jeden Fall Multiuser bzw. eine Person mit besonderen Rechten... kann benutzer erstellen/löschen und daten über die benutzer abfragen. Die Daten werden auf dem Server gespeichert und verändert via RMI-Methoden. Daher wäre ne DB schon optimal nur achtung jetzt kommts, wenn ich das xml object übergebe der RMI-Methode und der Server das Object in Empfang nimmt, soll ich das xml object mit den get/set methoden der Model Klasse die methoden beinhaltet wie getName(), getAlter() auslesen und in die DB schreiben unter Benutzung vorheriger getXX Methoden oder soll ich das komplette xml object einfach der setObject(); methode des PreparedStatement übergeben und auf diese Weise die Daten in die DB schreiben?


----------



## byte (30. Mrz 2008)

Letzteres wird nicht funktionieren. Du musst erst ein DB-Schema anlegen auf der Datenbank. Das heisst, Du brauchst Tabellen mit entsprechenden Spalten, wo die Daten dann reinkommen. In Deinem Fall also z.B. eine Tabelle Person mit Spalten Name, Alter usw.
Am besten wirfst Du mal einen Blick in ein Buch und beschäftigst Dich dort mit dem Kapitel JDBC.


----------



## GASTWirt (30. Mrz 2008)

byto hat gesagt.:
			
		

> Letzteres wird nicht funktionieren. Du musst erst ein DB-Schema anlegen auf der Datenbank. Das heisst, Du brauchst Tabellen mit entsprechenden Spalten, wo die Daten dann reinkommen. In Deinem Fall also z.B. eine Tabelle Person mit Spalten Name, Alter usw.
> Am besten wirfst Du mal einen Blick in ein Buch und beschäftigst Dich dort mit dem Kapitel JDBC.



habe ja auch ein programm mit MySql zeug gemacht in java das ist nicht das problem... ich gehe jetzt auch einfach mal davon aus, dass eine DB angelegt wurde mit Spalten und beziehungen etc.. warum sollte das ganze mit setObject dann nicht gehen? ok ich könnte mit


```
void updateDataset()
	{	
		try 
		{	
			myStatement.execute("UPDATE verwaltung set autor = 'xmlObject.getName()'");
		}
		catch (SQLException e) 
		{			
			e.printStackTrace();
		}
	}
```

einfach den namen mit getName() holen und das in die DB eintragen wenn doch ich will ja auch die textformatierungen in die DB bekommen nicht nur plain text...


----------

