GUI til at arbejde sammen med JDBC
Hvordan får man en database til at reagere på input fra GUI. Følgende kode opretter et lille vindue hvor man kan søge efter et navn i, hvorefter den efter planen skal sende navnet videre til JDBC, der så laver en forespørgsel på navnet i databasen. Hvad skal man skrive af kode, for at det fungere. Når jeg kører det som det er nu, når den kun til \"din forespørgsel gav følgende resultat\", og går kold der!import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class TextField
{
public static void main(String[] args)
{
TextField program = new TextField();
}//end main.
JFrame frame = new JFrame();
Container pane = frame.getContentPane();
private JButton quit = new JButton(\"Afslut\");
private JButton hit = new JButton(\"Søg\");
private JTextField input = new JTextField();
private TextField()//contructor
{
frame.setTitle(\"Søg På Navne\");
setLayout();//metodekald
addJTextField();//metodekald
addJButtons();//metodekald
addListener();//metodekald
frame.pack();//framen bliver pakket
frame.show();//framen bliver vist.
}//end contructor
private void setLayout()//en metode, som bliver kald fra contructoren.
{
pane.setLayout(new GridLayout(3,1,1,1));//opret 4x4 grid med en pixel mellem hvert element.
}
private void addJTextField()//en metode, som bliver kald fra contructoren.
{
pane.add(input);//TextField input bliver addet på Containeren, pane.
}
private void addJButtons()//en metode, som bliver kald fra contructoren.
{
pane.add(hit);
pane.add(quit);
}//knapperne hit og quit bliver nu addet.
private void addListener()//en metode, som bliver kald fra contructoren.
{
hit.addActionListener(new Trans());
quit.addActionListener(new QuitProg());
}
private class Trans implements ActionListener//klassen Trans
{
public void actionPerformed(ActionEvent e)
{
try {
// Loader driverfilen til MySQL
Class.forName(\"org.gjt.mm.mysql.Driver\");
// Definerer hvor databasen ligger og de nødvendige oplysninger til at logge på
String sourceURL = \"jdbc:mysql://vale.netimage.dk:3306/e1202\";
String user = \"xxxx\";
String password = \"xxxx\";
//input.getText()
// Opretter en forbindelse til databasen ved hjælp af DriverManager
Connection databaseConnection = DriverManager.getConnection(sourceURL, user, password);
// Bekræfter at der er hul igennem til databasen
System.out.println(\"DIN FORSP0RGSEL GAV F0LGENDE RESULTAT:\\n\");
Statement statement = databaseConnection.createStatement();
//Definere hvilke data der skal forespørges på med executeQuery
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn = \'%a%\'\");
//Udskriver resultset fra forespørgelsen
while (brugerNavne.next()) {
System.out.println(brugerNavne.getString(\"fornavn\") + \" \" + brugerNavne.getString(\"efternavn\"));
}
// lukker forbindelsen
databaseConnection.close();
}
catch (ClassNotFoundException cnfe) {
System.err.println(cnfe);
}
catch (SQLException sqle) {
System.err.println(sqle);
}
}
}
private class QuitProg implements ActionListener//klassen QuitProg
{
public void actionPerformed(ActionEvent e)
{
System.out.println(\"Programmet er blevet afsluttet korrekt\");
System.exit(0);
}
}
}
