9 Datenbank-Client-Programm (Ganzer SQL

Werbung
Datenbank-Client-Programm (Ganzer SQL-Befehl)
9
Datenbank-Client-Programm (Ganzer SQL-Befehl)
Interaktive Datenbakoberflächen, die vollständige SQL-Befehle aufnehmen, sind nichts anderes als
Anwendungsprogramme, die auf die beiden o.g. Befehlstypen reagieren müssen.
Entweder:
- Abschicken des SQL-Befehls an die Datenbank (select)
Empfang der Ergebnisse
Oder:
- Nur abschicken des SQL-Befehls an die Datenbank (insert, update usw.)
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.util.regex.*;
public class sqlbefehl extends Frame
{ Button ausführen = new Button ("Ausführen");
TextArea ein = new TextArea();
TextArea aus = new TextArea();
Panel eingabe = new Panel(new GridLayout(0,2));
Statement s;
Connection c;
public sqlbefehl ()
{ super("SQL-Befehl");
add("Center",eingabe);
eingabe.add(new Label("SQL-Befehl"));
eingabe.add(ein);
eingabe.add(new Label("Ergebnis"));
eingabe.add(aus);
eingabe.add(ausführen);
setSize(400,250);
setVisible(true);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
c = DriverManager.getConnection("jdbc:odbc:accessdb", "", "");
s = c.createStatement();
}
catch (Exception ex) {ex.printStackTrace();}
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}});
ausführen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
tue();
}});}
private void tue()
{
String sql = ein.getText();
Pattern p = Pattern.compile("select");
Matcher m = p.matcher(sql);
TFH Berlin/Steyer
Datenbank-Client-Programm (Ganzer SQL-Befehl)
if (m.find())
try
//
aus.setText("select gefunden");
{ ResultSet rs = s.executeQuery(sql);
ResultSetMetaData rm = rs.getMetaData();
int x = rm.getColumnCount();
aus.setText("");
for (int i=1; i<=x; i++) {
aus.append (rm.getColumnName(i));
if (i != x) aus.append (", ");
else aus.append("\n");
}
while (rs.next()) {
for (int i=1; i<=x; i++) {
aus.append (rs.getString(i));
if (i != x) aus.append (", ");
else aus.append("\n");
}
}
}
catch (Exception ex) {ex.printStackTrace();}
else
try {
//
aus.setText("select nicht gefunden");
s.executeUpdate(sql);
}
catch (Exception ex) {ex.printStackTrace();}
};
public static void main (String[] args)
{ new sqlbefehl();
}
}
TFH Berlin/Steyer
Herunterladen