hallo! ich verscuhe mich gerade in java und habe dabei als kleinen versuch ein kleines awt fensterchen geschrieben in dem ich einfach ein sql query eingebe und das ergebnis soll in einem textfeld ausgeben werden. dazu habe ich eine kasse für sql erstellt und eine für das fenster. nun wollte ich aus der sql klasse mittels einer methode dasresultset an die awt klasse übergeben, so das dort dann die ausgabe mit der while resut.next methode erfolgt. Jedoch meckert Eclipse rum, dass es wohl zu einer sql exception kommen würde, was mach ich da falsch?
SQL Klasse
AWT Fenster
Gruß niesel
SQL Klasse
Code:
import java.sql.*;
public class Mymysql {
private Connection con =null;
private Statement state = null;
public Connection connect() {
String dbdriver="com.mysql.jdbc.Driver";
String dburl="jdbc:mysql://localhost/java";
String dbuser="root";
String dbpassword="";
try {
Class.forName(dbdriver);
return DriverManager.getConnection(dburl, dbuser, dbpassword);
}
catch(Exception e) {
System.out.println("Kann DB-Berbdindung nicht herstellen");
e.printStackTrace();
return null;
}
}
public ResultSet execute(String query) {
ResultSet result;
try {
state = con.createStatement();
result= state.executeQuery(query);
return result;
}
catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
return null;
}
}
Code:
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
class SQLView extends Frame {
TextField SQLQuery;
Button OK;
TextArea SQLView;
MenuBar mb;
Mymysql mysql;
String resulttext;
ResultSet r;
public SQLView() {
setTitle("SQL-Viewer");
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
SQLQuery = new TextField();
OK = new Button("OK");
SQLView = new TextArea();
mb = new MenuBar();
mysql=new Mymysql();
mysql.connect();
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
//Menubar
c.gridx=0; c.gridy=0; c.gridheight=1; c.gridwidth=8;
c.fill = GridBagConstraints.HORIZONTAL;
c.insets=new Insets(5,5,5,5);
//add(mb, c);
c.gridx=0; c.gridy=1; c.gridheight=6; c.gridwidth=8;
c.fill = GridBagConstraints.BOTH;
add(SQLView, c);
c.gridx=0; c.gridy=7; c.gridheight=1; c.gridwidth=3;
c.fill = GridBagConstraints.BOTH;
add(OK, c);
c.gridx=3; c.gridy=7; c.gridheight=1; c.gridwidth=8;
c.fill = GridBagConstraints.BOTH;
add(SQLQuery, c);
OK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
//mymysql.query(SQLQuery.getText());
r=(mysql.execute(SQLQuery.getText()));//Rückgabetyp aus execute ist eigentlich ResulSet
while (r.next())//Unhandle Exception Type
{
SQLView.setText(r.getString("ID"));
}
}
});
pack();
setVisible(true);
}
public static void main(String[] arg) {
new SQLView();
}
}