HSQLDB Daten Auslesen

  • Themenstarter Themenstarter neuling__
  • Beginndatum Beginndatum
N

neuling__

Gast
Hallo,

Habe eine Frage bezüglich des Auslesen von Datensätzen einer Datenbank, vorweg ein beispiel:

Tabelle Person:
PersonNr|Name
1|Name A
2|Name B

Tabelle Fahrzeug:
FahrzeugNr|Bezeichnung
1|Bezeichnung A
2|Bezeichnung B
3|Bezeichnung C

Angenommen die Beziehung sei m:n (Eine Person kann mehrere Fahrzeuge besitzen. Ein Fahrzeug kann mehreren Personen gehören.), darraus ergibt sich beispliesweise folgendes:

Tabelle Person_Fahrzeug:
PersonNr|FahrzeugNr
1|1
1|2
2|2
2|3

Per join kann ich mir nun ausgeben lassen welche Fahrzeuge der Person mit dem Namen "Name A" gehören, das Ergebnis wären die folgenden Datensätze:
PersonNr|Name|FahrzeugNr
1|Name A|1
1|Name A|2

Wie kann ich hierraus nun "Personen-Objekte" mit der nachfolgenden Struktur bilden?
Java:
public class Person {

      private String name;
      private ArrayList<String> fahrzeuge;

      public Person(String name, ArrayList<String> fahrzeuge) {
            // ...
      }
}

Natürlich könnte ich in einer Schleife für jede einzelne Personennummer die zugehörigen Fahrzeuge abfragen, geht dies jedoch auch "leichter"?
Arbeite mit HSQL, habe dort etwas über Arrays gelesen. Wäre es damit realisierbar?


Gruß
 
der Zusammenhang zwischen einer Klasse und einer DB-Abfrage ist recht vage, dein Ziel unklar,
augenscheinlich könnte es um das häufige Mapping für Frameworks wie Hibernate gehen, immer mühsame Aufgaben,

du bist aber anscheinend bei JDBC und willst eine Ergebnismenge verarbeiten?
durchlaufe die Ergebnisse in einer Schleife, zu jeder Personnummer schaue in einer Map nach, ob schon eine Person vorhanden ist,
gegebenenfalls anlegen (und merken),

dann in diesem Person-Objekt das aktuelle Auto in die vorhandene Liste einfügen,

falls Auto irgendwann auch mal eine Klasse ist und es keine doppelt erstellten Autos geben soll, dann auch dafür Map anlegen usw.,
generell könnten erst alle Personen/ Autos einzeln geladen werden,
und der Join lädt dann nur die jeweilgen Ids, spart andere Spalten wie Personenname doppelt in der Query
 
der Zusammenhang zwischen einer Klasse und einer DB-Abfrage ist recht vage, dein Ziel unklar,
Dachte es wäre durch das Beispiel deutlich geworden, ich möchte gerne zu jeder vorhandenen Person in der DB die zugehörigen Fahrzeuge wissen und dies als eigenes Objekt "speichern".

du bist aber anscheinend bei JDBC und willst eine Ergebnismenge verarbeiten?
durchlaufe die Ergebnisse in einer Schleife, zu jeder Personnummer schaue in einer Map nach, ob schon eine Person vorhanden ist,
gegebenenfalls anlegen (und merken),

dann in diesem Person-Objekt das aktuelle Auto in die vorhandene Liste einfügen,
Das scheint dann wohl das sinnvollste zu sein, alle Daten auszulesen und einfach zu überprüfen ob ein solches Objekt(PersonenNr, Name) bereits existiert.

Danke dir schon mal.
 

Neue Themen


Zurück
Oben