// Programm 3-18b: BSP_ROOT/meinewebapp/WEB-INF/classes/jdbcbasis/EinfachesApplet.java
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class EinfachesApplet extends java.applet.Applet implements ActionListener{
  // GUI-Komponenten
  Button ausführen = new Button("Ausführen!");
  TextArea ein = new TextArea("SELECT", 3, 60);
  TextArea ausgabe = new TextArea();
 
  // DBMS-Variable
  Connection c;
  Statement s;
  public void init() {
    Panel eingabe = new Panel(new BorderLayout());
    Panel knopf = new Panel(new FlowLayout(FlowLayout.LEFT));
    knopf.add(ausführen);
    eingabe.add(knopf, "North");
    eingabe.add(ein, "Center");
    add(eingabe, "North");
    add(ausgabe, "Center");
    ausgabe.setEditable(false);                 // für Eingaben sperren
    try {
      Class.forName("org.gjt.mm.mysql.Driver"); 
      c = DriverManager.getConnection("jdbc:mysql://localhost:3306/Kurse",
                                                                        "root", "");
      s = c.createStatement();
    }
    catch (Exception ex) {
      ausgabe.setText("Fehler:\n" + ex.getMessage());
    }
    ausführen.addActionListener(this);          // Eventlistener registrieren
  }
public void actionPerformed(ActionEvent e) {
    String sql = ein.getText();
    ResultSet r;
    try {
      if (s.execute(sql)) {           // SQL SELECT ausführen
        r = s.getResultSet();
        ResultSetMetaData rm = r.getMetaData();
        int x = rm.getColumnCount();
        ausgabe.setText("");
        for (int i = 1; i <= x; i++) {
          ausgabe.append(rm.getColumnName(i));
          if (i != x) ausgabe.append(", "); else ausgabe.append("\n");
        }
        while(r.next()) {
          for (int i = 1; i <= x; i++) {
            ausgabe.append(r.getString(i));
            if (i != x) ausgabe.append(", "); else ausgabe.append("\n");
          }
        }
      }
      else
        ausgabe.setText(String.valueOf(s.getUpdateCount()));
    }
    catch (Exception ex) {
      ausgabe.setText("SQL: " + sql + "\nFehler:\n" + ex.getMessage());
    }
  }
}