# resultset aus andere klasse übergeben



## nieselfriem (3. Mai 2008)

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

```
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;
	}
}
```
AWT Fenster

```
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();
  }
}
```
Gruß niesel


----------



## SlaterB (3. Mai 2008)

try/ catch drumherum, hast du doch schon an anderen Programmstellen


----------



## nieselfriem (3. Mai 2008)

???? Was meinst du?

P.S. Energie wird meister


----------



## SlaterB (3. Mai 2008)

schau dir deine Operation
public ResultSet execute(String query) { 
an

da hättest du die gleichen Fehlermeldungen wenn du nicht try/ catch benutzen würdest,
wenn du niht weißt was das ist und nur irgendwo kopiert hast
dann schlage das bei google/ in deinen Lehrbuch nach
oder kopiere auch den Code zum Auslesen des ResultSets


----------

