Java - SQL - ID aus Tab1 in Tab2 als Fremdschlüssel

Aslan1905

Mitglied
Hallo, ich habe folgende Tabellen:

Tabelle mitarbeiter:

- ID
- Name
- Vorname (etc.)

Tabelle login:

- ID
- Benutzername
- Passwort
- Typ
- MitarbeiterID (Fremdschlüssel)

1.) Kann ich gleichzeitig zwei Einträge in zwei Tabellen durchführen und dabei ID aus Tabelle mitarbeiter als Fremdschlüssel in Tabelle Login (MitarbeiterID) übergeben? Wie kann ich es umsetzen?

Meine Anwendung kann mit Hilfe von INSERT INTO die Werte in der Tabelle mitarbeiter befüllen. Möchte
aber jetzt auch noch das gleichzeitig die Tabelle login befüllt wird und ID aus Mitarbeiter an MitarbeiterID übergeben wird. Wie mache ich das?

Mein Quellcode sieht momentan folgendermaßen aus:


Java:
  private void cmd_speichernActionPerformed(java.awt.event.ActionEvent evt) {                                              
                
        try{
        
            String sql = "INSERT INTO mitarbeiter (Vorname,Nachname,Geburtsdatum,Geschlecht,EMail,Mobilnummer) VALUES (?,?,?,?,?,?)";
            
            pst1 = conn.prepareStatement(sql, pst1.RETURN_GENERATED_KEYS);

            pst1.setString(1, txt_vorname.getText());
            pst1.setString(2, txt_nachname.getText());
            pst1.setString(3, txt_geb.getText());
            pst1.setString(4, txt_geschlecht.getText());
            pst1.setString(5, txt_email.getText());
            pst1.setString(6, txt_mobilnr.getText());
            
            
            pst1.execute();
    
            
            JOptionPane.showMessageDialog(null, "Die Daten wurden gespeichert!");
        
        }   catch(Exception e){
        
                JOptionPane.showMessageDialog(null, e);
        
            }          
 }

Vielen Dank im Voraus!
 
Ohne test, würde ich sagen, es sollte so funktionieren:
Java:
	private void cmd_speichernActionPerformed(java.awt.event.ActionEvent evt) {
		try {
			String sql = "INSERT INTO mitarbeiter (Vorname,Nachname,Geburtsdatum,Geschlecht,EMail,Mobilnummer) VALUES (?,?,?,?,?,?)";
			pst1 = conn.prepareStatement(sql, pst1.RETURN_GENERATED_KEYS);
			pst1.setString(1, txt_vorname.getText());
			pst1.setString(2, txt_nachname.getText());
			pst1.setString(3, txt_geb.getText());
			pst1.setString(4, txt_geschlecht.getText());
			pst1.setString(5, txt_email.getText());
			pst1.setString(6, txt_mobilnr.getText());
			int id = pst1.executeUpdate();
			String loginSql = "INSERT INTO login (ID, Benutzername, Passwort, Typ, MitarbeiterID) VALUES (?,?,?,?,?)";
			PreparedStatement stmt = conn.prepareStatement(loginSql, stmt.RETURN_GENERATED_KEYS);
			stmt.setString(1, id);
			stmt.setString(2, txt_nachname);
			//...
			
			JOptionPane.showMessageDialog(null, "Die Daten wurden gespeichert!");
		} catch (Exception e) {
			JOptionPane.showMessageDialog(null, e);
		}
	}
 

Neue Themen


Zurück
Oben