# tree in datenbank abbilden



## moechelly (15. Nov 2006)

hallo,

ich möchte gerne wissen, wie man einen JTree-baum auf der Daten anlegen kann
um später ihn auslesen und entsprechend wieder aufbauen kann.

hat jemand eine Idee wie das gemacht werden kann?
Ich euch sehr dankbar.

gruß
chelly


----------



## AlArenal (15. Nov 2006)

Vielleicht könntest du in einigen einfachen und verständlicher formulierten Sätzen nochmal deine Anforderungen schildern. 

Aus deinem Geschreibe geht nicht hervor, ob du nach einer DB-Struktur fragst, oder einer programmatischen Umsetzung, oder beidem oder nichts von alledem...


----------



## Guest (15. Nov 2006)

hallo,

sorry, dass ich mich sehr schlampisch ausgedrück habe.

Meine Bedürfnise sind eigentlich folgendes.

Ich habe einen JTree und in diesem JTree werden Nodes erzeugt, die Tiefe des Baums kann belibig groß werden.
Wenn ich meine Programm schließe und dann es wieder öffne, möchte ich der Baumstruktur finden, den ich als letztes
gehabt habe.

es wäre toll, wenn du mir sagen kannst, wie ich in tabellen auf dem datenbank server das anlegen kann und 
wie lese ich diese daten um sie später in meinem Baum exact hinbekommen kann

vielen Dank im vorraus
Ich hoffe ich habe mich klarer ausgedrück

Danke sehr


----------



## AlArenal (15. Nov 2006)

Ich vermute mal einfach, dass du noch nicht so lang dabei bist und da isses dann schon ein ganzes Stück Arbeit.

Zunächst einmal solltest du dir ne eigene Klasse schreiben, mit dessen Instanzen du deine Knoten und Blätter abbildest. Dann müsstest du dir mittels JDBC was programmieren, womit du diese Instanzen in eine Datenbank schreiben und wieder lesen kannst. Dazu musst du dir von Seiten der Datenbank Gedanken zum Aufbau der DB machen. Am einfachsten ist einen ähnlichen Ansatz wie im TreeModel zu verfolgen, nämlich zu jedem Eintrag in der Tabelle die ID des übergeordneten Knotens (Parent) abzulegen. Der Eintrag für den Root-Knoten hätte dann entsprechend keinen Parent gesetzt. Beim Einlesen kann man dann die einzelnen Einträge in zwei Durchläufen zunächst wieder in Instanzen ablegen und dann in den Instanzen die Referenz zum Parent ablegen. Hat man sich ein passendes TreeModel gebaut muss man diesem dann nur den Root-Knoten geben, der Rest geht dann wie von Zauberhand automatisch.
Alternativ kann man für sehr große Baumstrukturen das Ganze auch als Nested Set in der DB ablegen. Dazu findest du massig Tutorials und Beispielcode via Google.

Für Einsteiger isses alles in allem nicht ganz so trivial, aber ein nettes Lernstück


----------

