Frank: Objekt ' verbindung ' wird nicht erkannt!

Hallo Leute,

ich hab den folgenden Code in Java:

try { Connection verbindung = DriverManager.getConnection("jdbc.odbc:db","",""); }
   catch(Exception e)
   { System.out.println("Datebanktreiber konnte nich geladen werden!");
     return;
   }
    
    Statement query = verbindung.createStatement();    //Hier
    ResultSet ergebnisse = query.executeQuery("SELECT * FROM db ODRDER BY 'ID'");
    System.out.println(ergebnisse);

Doch ich bekomm die Fehlermeldung, dass verbindung (in der Zeile //Hier) nicht erkannt wird, obwohl dieses Objekt weiter oben bei Connection schon deklariert worden ist!
Wißt Ihr warum?
Hier die vollständige Fehlermeldung des Compilers:

Datenbank.java:120: cant resolve symbol
symbol: variable verbindung
location: class Datenbank
  Statement query = verbindung.createStatement();
                    
1 error

Danke für eure Hilfe!
Gruß Frank

  1. Hallo Frank

    Lokale Variablen gelten in Java nur innerhalb des blocks, in dem sie definiert werden.
    Volgender code ist besser:

    Connection verbindung = null;
         try { verbindung = DriverManager.getConnection("jdbc.odbc:db","",""); }
       catch(Exception e)
       { System.out.println("Datebanktreiber konnte nich geladen werden!");
         return;
       }
        
        Statement query = verbindung.createStatement();    //Hier
        ResultSet ergebnisse = query.executeQuery("SELECT * FROM db ODRDER BY 'ID'");
        System.out.println(ergebnisse);

    Tschüs

    Daniel

    1. Hallo Daniel,

      Connection verbindung = null;
           try { verbindung = DriverManager.getConnection("jdbc.odbc:db","",""); }

      »»     catch(Exception e)
      »»     { System.out.println("Datebanktreiber konnte nich geladen werden!");
      »»       return;
      »»     }
      »»      
      »»      Statement query = verbindung.createStatement();    //Hier
      »»      ResultSet ergebnisse = query.executeQuery("SELECT * FROM db ODRDER BY 'ID'");
      »»      System.out.println(ergebnisse);

      Diese Variante, bringt zwei Fehlermeldungen mit sich:

      unreported Exceptions java.sql.SQLExceptions; must be caught or declared to be thrown
      Statement query = verbindung.createStatement();

      unreported Exceptions java.sql.SQLExceptions; must be caught or declared to be thrown
      ResultSet ergebnisse = query.executeQuery("SELECT * FROM db ODRDER BY 'ID'");

      2 errors

      Gruß Frank

      1. Hallo,

        diese Fehlermeldungen bedeuten, daß die betroffenen Anweisungen ebenfalls Exceptions auslösen können (in dem Fall SQL-Exceptions) und die müssen natürlich mit try-catch abgefangen werden.

        Gruß
           Michael