Rückgabe aus einer Methode

AndreG

Erfahrenes Mitglied
Hi@all

Ich hab da nen kleines problem mit dieser klasse. Die Klasse wird in meinem Hauptprogramm aufgerufen und soll allerdings das array Rückgabe zurückgeben. Nur wenn ich ihm ein return befehl gebe kann das prog nich compaliert werden uns sagt mir der method typ wäre void. Warum ist das so und wie kann ich das ändern das er mir das arry zurück gibt.

Greetz and thx for help
Code:
import java.sql.*; 

// Notice, do not import org.gjt.mm.mysql.* 
// or you will have problems! 

public class Laden {
        
   public Laden(){
       
       String[] Rückgabe;
        
               
        // Diese Eintraege werden zum 
        // Verbindungsaufbau benoetigt. 
        final String hostname = "localhost"; 
        final String port = "3306"; 
        final String dbname = "projekt"; 
        final String user = "root"; 
        final String password = ""; 
	
        Connection conn = null; 
	
        try { 
	    System.out.println("* Treiber laden"); 
      	    Class.forName("org.gjt.mm.mysql.Driver").newInstance(); 
        } 
        catch (Exception e) { 
            System.err.println("Unable to load driver."); 
            e.printStackTrace(); 
        } 
        try { 
	    System.out.println("* Verbindung aufbauen"); 
	    String url = "jdbc:mysql://"+hostname+":"+port+"/"+dbname; 
	    conn = DriverManager.getConnection(url, user, password);
        
            System.out.println("* Statement beginnen"); 
            Statement stmt = conn.createStatement(); 

            System.out.println("* Abfrage beginnen"); 
	    String sqlCommand = 
		"SELECT Datum, Gegenstand FROM bestellung";

            ResultSet rs = stmt.executeQuery(sqlCommand); 
	    
            System.out.println("* Ergebnisse anzeigen"); 
	    while (rs.next()) { 
		String Datum2 = rs.getString(1);
        String Gegenstand = rs.getString("Gegenstand"); 
		Rückgabe = new String[5];
        Rückgabe[0] = Datum2;
        //System.out.println( Datum+" "+Gegenstand+" ");
        }

	    System.out.println("* Statement beenden"); 
	    stmt.close(); 
            
	    
	    System.out.println("* Datenbank-Verbindung beenden"); 
	    conn.close(); 
        } 
        catch (SQLException sqle) { 
            System.out.println("SQLException: " + sqle.getMessage()); 
            System.out.println("SQLState: " + sqle.getSQLState()); 
            System.out.println("VendorError: " + sqle.getErrorCode());
            sqle.printStackTrace(); 
        }
       
        
     } 
    
}
 
Das ist normal :)

deine Function ist ja als Konstructor ausgelegt und da ist
von der Sprachvorgabe keine Rückgabe möglich.

Mache aus Deiner Function / Methode ein normale Class Function und dann kann man Werte zurückgeben.

aus
public Laden(){
z.b das machen
public String[] ladeverbindung() {
 
Zuletzt bearbeitet:
public String[] ladeverbindung() {

das sieht mir irgendwie nach nem konstruktor mit nem array aus oder liegt ich heute mal wieder nur daneben. Aso falls es noch einen interresiert der Aufruf sieht folgender massen aus.
Code:
private void LadenActionPerformed(java.awt.event.ActionEvent evt) {
        new Laden();
    }
 
Nee das ist kein Konstructor mehr sondern eine Methode oder Function einer Classe

der abgeänderte Aufruf sollte so aussehen:

private void LadenActionPerformed(java.awt.event.ActionEvent evt) {
temp = new Laden();
String werte[] = temp.ladeverbindung();
}

Nur was mich wundert: hier wird kein Stringarray gebraucht -- sprich irgendwas ist
hier oberfaul :)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück