GUI und SQL

hey

hab endlich eine Datenbankverbindung hinbekommen

Habe eine Klasse DBAnbindung und dann einige GUIs wie Speichern, Anzeigen, usw

Jetzt will ich in der Klasse „Speichern“ in Textfelder Name, Vorname, usw eingeben und das dann per Button in der DB speichern. Tja, nur wie

db.update(
„INSERT INTO AdressDB(name) VALUES( ‚regenschauer‘)“);

So füge ich einfach so regenschauer hinzu. Möchte das aber nun eben erst in ein Textfeld eingeben, dann auf -speichern- klicken und dann soll es in die DB gespeichert werden.
Weiß aber nicht, wie ich sql-technisch auf das Textfeld zugreife.

diese update Anweisung hab ich ja in der main-Methode, jetzt will ich das ja per Button machen. Das ist mein 2. Problem, wie stelle ich das denn an?

Kann mir jemand helfen?

Hallo,

das Prinzip ist ganz einfach. Du hängst einen ActionListener an den Button, dieser wird aufgerufen, wenn der Button gedrückt wird. Einfach eine Klasse schreiben, welche ActionListener implementiert und dann mittels addActionListener(…) auf den Button legen.
Dort musst du die Methode actionPerformed(ActionEvent event) implementieren und dann kannst du gemütlich über

((TextField)event.getSource()).getText();

darauf zugreifen.

LG Matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

habs hinbekommen :smile:

jetzt hab ich noch ne andere frage

kann man die daten aus einer abfrage in textfeldern auslesen?

also textfeld name, vorname, usw

geht das?

Sicher geht das! Aber ich hab jetzt nicht ganz verstanden was du möchtest, willst du eine SQL-Abfrage machen und die Werte dann in ein/mehrere Textfelder speichern oder willst du von mehreren Textfeldern eine Abfrage generieren?

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich möchte eine Abfrage generieren, und dann die Werte in die Textfelder schreiben.

ich möchte eine Abfrage generieren, und dann die Werte in die
Textfelder schreiben.

Ich hab jetzt keine DB oder Tabelle erzeugt, aber so ungefähr könnte sowas aussehen. Hoffe es dient als Beispiel und deine Fragen sind damit erklärt.

Quick and Dirty

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;


public class TestWindow 
{
 private JFrame frame\_;
 private JTextField vorname\_;
 private JTextField nachname\_;
 private JTextField ergebnis\_;
 private JButton button\_;

 public TestWindow() {
 super();
 frame\_ = new JFrame("TestFenster");
 frame\_.setSize(480, 150);
 frame\_.setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE);
 frame\_.setLayout(new GridLayout(0,2));
 frame\_.add(new JLabel("Vorname: "));
 vorname\_ = new JTextField();
 frame\_.add(vorname\_);
 frame\_.add(new JLabel("Namename: "));
 frame\_.add((nachname\_ = new JTextField()));
 frame\_.add(new JLabel("Ergebnis: "));
 frame\_.add(ergebnis\_ = new JTextField());
 frame\_.add(button\_ = new JButton("Abfragen"));
 button\_.addActionListener(new ActionListener()
 {
 public void actionPerformed(ActionEvent e) {
 String vname = vorname\_.getText();
 String nname = nachname\_.getText();
 StringBuilder sb = new StringBuilder();
 sb.append("SELECT anzeige FROM users WHERE vorname='")
 .append(vname).append("' AND nachname='").append(nname).append("' ");
 String sql = sb.toString();
// Hier SQL Ausführen
// Daten aus der Abfrage ins Textfeld speichern
// z.b.: ergebnis\_.setText(resultSet.getString("anzeige"));
 ergebnis\_.setText("Ergebnis hier reinschreiben: "+sql);
 }
 });
 frame\_.setVisible(true);
 }

 /\*\*
 \* @param args
 \*/
 public static void main(String[] args) {
 new TestWindow();
 }

}