JTree aus und in Datenbank

p3lotud0

Grünschnabel
Hallo,

habe zur Zeit ein fuer mich recht schwieriges Problem, bei welchem ich einfach nicht weiterkomme:

Ich moechte gerne einen JTree in einer Datenbank abbilden und von da aus auch wieder erstellen lassen.

Die Struktur, mit der ich mir dieses vorgestellt habe, ist diese:

node_id, node_name, node_parent_id, ggf. node_child_id

Noch etwas zum Umfang: Der JTree soll einfach Artikelkategorien verwalten. Also so ca. maximal 3-5 Level und auch bei weitem nicht so ein Umfang wie beim Darstellen eines Dateisystems, etc.

Einfach waere das Erstellen, wenn der node_name verschieden sein muesste, weil dann kann man ja einfach den parent vom betreffenden node suchen und dort diesen einfach hinzufuegen.

Es versteht sich jedoch von selber, dass auch identische Kategorienamen erstellt werden duerfen...

Habe jetzt schon wirklich google rauf und runter laufen lassen, aber ich finde einfach nichts brauchbares, was ich verwerten koennte.

Waere super dankbar, wenn mir da jemand von Euch weiterhelfen koennte !

Saludos,

p3lotud0
 
Hi,

Du willst ein komplettes Design? Ein bißchen viel für ein Forum.

Ich will es mal grob skizzieren:

Zur Datenbank: Erstelle eine Tabelle, 1 : n mit sich selbst verzeigert ist. Toplevelelemente zeigen auf "null". Alle anderen zeigen auf genau einen Parent. Solltest Du Infos dazu suchen googele unter dem Stichwort Rekursive Tabellen, theoretische Texte zum Thema "Stücklisten" sind sicher auch hilfreich.

Zur Datenhaltungsklasse: Erstelle eine Klasse, die den Baum nach dem Composite-Pattern abbildet siehe: http://de.wikipedia.org/wiki/Kompositum_(Entwurfsmuster)
befüllt wird die Struktur aus der Tabelle. Das ist recht simple, Beispielcode für das Pattern in C# liegt bei und kann leicht übertragen werden.


Darüber kannst Du jetzt eine (Adapter bzw. Contoller) Klasse bauen, die das JTree Model implementiert und die Daten aus der Datenhaltungsklasse an den JTree weiterreicht.


Hoffe, das war nicht zu grob. Bei weiteren Fragen kannst Du Dich gerne an mich wenden.

Gruß

Jo
 
Zuletzt bearbeitet:
Zurück