Fremdschlüssel

Honkisponk

Mitglied
hi,

also ich hab hier folgendes problem. Es geht um ein Flugbuchungsprogramm für eine Fluggesellschaft.
Ich hab die 2 Tabellen (in Mysql), Flugzeug und Kategorie

Meine Datenbank schaut so aus:
Flugzeug: FlugzeugID(PK), Typ, KategorieID(FK)
Kategorie: KategorieID(PK), anzahlEconomy, anzahlBusiness, anzahlFirst

Alles soweit ok, aber jetzt weis ich nicht, wie ich das in meinem Java Code realisiere, dass wenn ich eine
Kategorie anlege, diese ID in mein neu Angelegtes Flugzeug reinkommt.

hoffe das ist jetzt ein bischen verständlich ^^, hier mal mein java code

Java:
	public void flugzeugAnlegen(Flugzeug flugzeug) {
		
		String query2 = "INSERT INTO Kategorie(AnzahlEconomy, AnzahlBusiness, AnzahlFirst)" +
		"VALUES('"+flugzeug.getKategorie().getAnzahlEconomy()+"', '"+flugzeug.getKategorie().getAnzahlBusiness()+"', '"+flugzeug.getKategorie().getAnzahlFirst()+"')";
		
		boolean bool2 = Datenbankanbindung.executequery(query2);
		if(bool2) {
			System.out.println("Kategorie wurde in die Datenbank gespeichert");
		}
		
		String query = "INSERT INTO Flugzeug(Typ, KategorieID)" +
		"VALUES('"+flugzeug.getTyp()+"', '"+query2+"')";
		
		boolean bool = Datenbankanbindung.executequery(query);
		if(bool) {
			System.out.println("Flugzeug wurde in die Datenbank gespeichert");
		}
	}

bin für jede hilfe sehr dankbar ;)

mfg
Honkisponk
 

Honkisponk

Mitglied
hi,

also ich tippe mal darauf, dass des ne relationale db ist.
ist einfach mit dem MySQL Query browser erstellt

also in der Tabelle Flugzeug, gibt es ein Feld namens KategorieID
und das ist mein Fremdschlüssel, der mit der Tabelle Kategorie verbunden ist.
 

XoxoL

Mitglied
vieleicht reicht das

Java:
        String query = "INSERT INTO Flugzeug(Typ, KategorieID)" +
        "VALUES('"+flugzeug.getTyp()+"', "+flugzeug.getKategorie().getKategorieID+")";

denn bei du musst ja in die Tabelle Flugzeug die KategorieID als Fremdschlüssel eintragen
 

Honkisponk

Mitglied
danke für deine tolle hilfe,

aber das kann doch garnicht funktionieren, weil ja die KategorieID zwar in der Datenbank existiert, aber in der Java Schicht nicht.
 

Honkisponk

Mitglied
also ich hab jetzt einfach die Kategorie (also die Anzahl der Sitzplätze) DB gelöscht und in Flugzeug reingetan. Bei genauer überlegung ist mir nämlich gekommen, dass das sowieso blöd war, diese Daten rauszunehmen und in eine eigene db zu speichern.

Bei einer anderen DB hat das dann mit dem Fremdschlüssel funktioniert

also danke für deine hilfe :p
 

Ähnliche Java Themen


Oben