# Universum und Datenbank



## ameisengehirn (20. Aug 2011)

Hallo Leute,

ich bräuchte mal euren Denkanstoß. Ich lese Collada und X3D-Files mittels Java3D loader ein und
parse das entstehende Universum rekursiv. Hierbei erstelle ich eine Liste mit sämtlichen Shape3D.
Eine weitere Klasse erhält diese Liste und arbeitet sich sozusagen von unten nach oben mit getParent() zum Rootknoten. Im Moment steht alles in einer Liste:


```
LinkedList<LinkedList<Object>> myStorage = new LinkedList<LinkedList<Object>>();

		for (int i = 0; i < shapeList.size(); i++) {

			LinkedList<Object> shapeRelatives = new LinkedList<Object>();

			shapeRelatives.add(0, (shapeList.get(i)).getParent().getParent().getParent());
			shapeRelatives.add(1, (shapeList.get(i)).getParent().getParent());
			shapeRelatives.add(2, (shapeList.get(i)).getParent());
			shapeRelatives.add(3, shapeList.get(i));
			
			myStorage.add(shapeRelatives);
		}
```

Die Entsprechenden Abfragen ob noch Parents vorhanden sind muss noch eingebaut werden.
Folgende Ausgabe soll beispielhaft zeigen was in den Listen steht:


```
[javax.media.j3d.TransformGroup@15b0333, javax.media.j3d.TransformGroup@a89ce3, javax.media.j3d.Group@1d439fe, javax.media.j3d.Shape3D@2b7db1]

[javax.media.j3d.TransformGroup@15b0333, javax.media.j3d.TransformGroup@148f8c8, javax.media.j3d.Group@1c5466b, javax.media.j3d.Shape3D@922804]
```

Die TransformGroup javax.media.j3d.TransformGroup@15b0333 enthält also mehrere TransformGroupen usw... (von Links nach rechts = Hierarchie).

Dies soll nun in der Datanbank abgelegt werden. Also 1 Table für diese TG und in anderen Tables jeweils die Objekte.

Jemand eine Idee wie ich das aus den Listen komfortabel auslesen kann?

Oder jemand eine ganz andere Idee?

Danke für eure Anregungen!

Grüße Phil


----------



## tuttle64 (20. Aug 2011)

ameisengehirn hat gesagt.:


> Jemand eine Idee wie ich das aus den Listen komfortabel auslesen kann?



Die Frage ist, ob es unbedingt eine DB sein muss. Was spricht dagegen, die ganze Liste zu serialisieren und lokal zu speichern?


----------



## ameisengehirn (20. Aug 2011)

da das ganze später in ein bestehendes System überführt werden soll. Und ich möchte grds nicht so eingeschränkt werden.


----------



## tuttle64 (20. Aug 2011)

ameisengehirn hat gesagt.:


> da das ganze später in ein bestehendes System überführt werden soll. Und ich möchte grds nicht so eingeschränkt werden.




Gut. Wie man Objekte in DBs speichert, findest man viele Beispiele im Web, für MySQL z.B. How to serialize/de-serialize a Java object to the MySQL database. : Object SerializationDatabase SQL JDBCJava 

Ich denke, solche Beispiele sind als Start geeignet und mit wenig Aufwand lassen sie sich so erweitern, damit das Speichern und Laden "komfortabel" geht.


----------



## ameisengehirn (20. Aug 2011)

nein das ist nicht das Problem: es geht mir im moment eher darum wie ich am besten herausfinde wie ich an die Hierarchie aus dem Universeum komme...


----------



## ameisengehirn (20. Aug 2011)

ich habe jetzt 2 Object Listen gemacht.
in die 1. Liste schreibe ich jedesmal beim aufruf einer Transformgroup alle unterelemente.
am ende der methode (alles unterhalb der TG ist ausgelesen), setzte ich die liste in die 2. liste.
somit habe ich eine Liste mit der ich die Hierarchie wieder herstellen kann.
Andere Vorschläge?


----------

