Ein DB-Experte bin ich nicht. Aber ich weiß, dass es „gute“ und „schlechte“ Möglichkeiten gibt, Dinge umzusetzen, und zwar auf allen Ebenen.
Ausschweifungen darüber, dass man sich genau klar machen sollte, wann und wo die DB-Verbindung aufgebaut und wieder geschlossen wird, dass man den Zugriff irgendwie konfigurieren können muss, dass das GUI nicht blockieren sollte, während man in die DB schreibt, und man UI-Code und IO-Code strikt trennen sollte, und 1000 andere Dinge, erspare ich dir jetzt mal.
(Der Punkt ist: „gute“ und „schlechte“ Möglichkeiten ist oft fast gleichbedeutend mit „schwierige“ und „einfache“ Möglichkeiten, und ich nehme an, dass es hier eher um letztere geht).
Ganz kurz zu den Punkten:
Stimmt es das man eine eigene Class für den Verbindungsaufbau zur Datenbank braucht,
ist es sinnvoll dies zu machen? (Ich denke ja)
Man könnte es auch ohne eigene Klasse machen, und den DB-Code direkt ins GUI klatschen. Aber das wäre dann so schlecht, dass ich sagen würde: Ja, eine eigene DB-Connection-Klasse ist sinnvoll. (Die konkrete Form deiner Klasse könnte man wieder hinterfragen, aber das lasse ich mal)
Muss ich jede Variable über eine eigene Methode an die Class „DBzugriff“ übergeben oder
kann ich nicht alle zusammen übergeben?
Du scheinst ja schon alle übergeben zu wollen: Die werden ja an insertVA
übergeben…
Reicht es in der Class die die Verbindung zur DB aufbaut alle Befehle zu schreiben, oder
muss in der Class mit dem Button auch ein Code stehen der die DB anspricht?
Siehe oben: Ins GUI gehört kein DB-Code
Könnte mir jemand bitte ein bsp. Code zeigen der mir erklärt was passiert?
Ja, schwierig. Nochmal: Um das „gut“ zu machen, müßte man richtig viel Arbeit investieren (so viel, dass niemand bereit ist, die damit verbundenen Aufwände zu tragen - deswegen bekommt man heute als „richtiger“ Softwareentwickler keinen Job mehr, weil niemand 10 Stunden bezahlen will, für etwas, was man auch in 1 Stunde schnell runterrotzen kann).
Aber soweit ich das überblicke, wäre die einfachste (…) Möglichkeit, das Ziel zu erreichen, dass du in der actionPerformed
eben schreibst:
BUTTON_anlegenActionPerformed(java.awt.event.ActionEvent evt) {
String BIA = TF_bia.getText();
/** alle anderen strings...*/
...
try {
Connection conn = DBzugriff.getMySqlConnection();
DBzugriff.insertVA(conn, BIA, .... /** alle anderen strings...*/);
} catch (Exception e) { // Sollte man NIE machen...
e.printStackTrace();
}
}
Nicht schön, aber sollte GROB so „funktionieren“