tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
675
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von AndreG
    AndreG AndreG ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Köln
    Beiträge
    566
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    
    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(); 
            }
           
            
         } 
        
    }
     

  2. #2
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    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() {
    Geändert von melmager (26.02.04 um 08:51 Uhr)
     

  3. #3
    Avatar von AndreG
    AndreG AndreG ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Köln
    Beiträge
    566
    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 :
    1
    2
    3
    
    private void LadenActionPerformed(java.awt.event.ActionEvent evt) {
            new Laden();
        }
     

  4. #4
    Registriert seit
    Jul 2002
    Ort
    Frankfurt (Hessen)
    Beiträge
    2.135
    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
    Geändert von melmager (26.02.04 um 13:20 Uhr)
     

  5. #5
    Avatar von AndreG
    AndreG AndreG ist offline Mitglied Platin
    Registriert seit
    Feb 2004
    Ort
    Köln
    Beiträge
    566
    Big Thx für deine hilfe nu gehts
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 21.07.08, 18:35
  2. Parameter rückgabe nach Prüfung an Klasse/Methode
    Von cr3m4 im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 09.06.08, 10:37
  3. Antworten: 2
    Letzter Beitrag: 06.06.07, 18:37
  4. [c++ .net] rückgabe von klasse durch methode
    Von Halcom im Forum .NET Windows Forms
    Antworten: 0
    Letzter Beitrag: 06.07.06, 13:49
  5. rückgabe eines arrays von Methode
    Von SMoeller im Forum Java
    Antworten: 1
    Letzter Beitrag: 05.03.06, 13:57