2012-12-02 8 views
5

Ich bin kaum vertraut mit vorgebündelten STS. Ich versuche JDBC für MySQL in Eclipse/Spring auf Fedora 17Kompilierungsfehler - com.mysql.jdbc.Driver kann nicht in eine Variable aufgelöst werden

Download der mysql JDBC-Treiber (mysql-connector-java-5.1.22-bin.jar). Dann in der IDE

  1. ein Projekt erstellt und es JDBC namens
  2. Erstellt ein Verzeichnis ‚lib‘ im Rahmen des Projekts
  3. Ging zum Projekt> Eigenschaften aufgerufen. Wählen Sie den Java-Build-Pfad und dann den Tab "Bibliotheken" aus. klickte auf 'Jars hinzufügen' Selected JDBC> lib> mysql ---. jar und klickte auf OK. Dies fügte unter dem Projekt-Explorer eine 'referenzierte Bibliothek' hinzu, unter der ich die JAR-Datei von mysql sehe.
  4. Schrieb den folgenden Code im Rahmen des Projekts

I der Art dachte ich, was zu kompilieren benötigt wurde getan hatte. Allerdings bin ich

Class.forName(com.mysql.jdbc.Driver);

com.mysql.jdbc.Driver sehen kann nicht auf eine Variable

aufgelöst werden Können Sie mir sagen, was hier falsch ist.

import java.sql.Connection; 
    import java.sql.DriverManager; 
    import java.sql.PreparedStatement; 
    import java.sql.ResultSet; 
    import java.sql.SQLException; 
    import java.sql.Statement; 


    public class TestJDBC { 

     /** 
     * @param args 
     */ 
     public static void main(String[] args) throws Exception{ 
      // TODO Auto-generated method stub 
      Connection connection = null; 
      Statement statement = null; 
      PreparedStatement preparedStatement = null; 
      ResultSet resultSet = null; 
      try { 
       Class.forName(com.mysql.jdbc.Driver); 
       connection = DriverManager.getConnection("jdbc:mysql://localhost/testdb?" + 
          "user=myuser&password=mypwd"); 
       if (connection != null) { 
        System.out.println ("Connected may be?"); 
        connection.close(); 
       } 
       else { 
        System.out.println ("Not connected?"); 
       } 
      } 
      catch (Exception e) { 
       connection.close(); 
      } 
     } 
    } 

Antwort

4
Class.forName("com.mysql.jdbc.Driver"); 

oder

Class.forName(com.mysql.jdbc.Driver.class.getName()); 

wird besser funktionieren. (Der zweite ein kompiliert ist aber nicht wirklich Sinn machen, weil es diese Klasse übernimmt bereits geladen ist :)

+1

Ich wusste nicht, dass ich die Anführungszeichen vermisste. Nun, ich habe den Preis bezahlt, weil ich es nicht bemerkt habe. Vielen Dank – rpat

4

Sie verwenden möchten:

Class.forName("com.mysql.jdbc.Driver"); 

In Zukunft beachten Sie, dass der Compiler Sie erzählte was es erwartet hat: eine Variable. Sie müssen nur herausfinden, wie Sie das, was Sie haben, modifizieren oder in etwas umwandeln, was Sie wollen. In diesem Fall kann alles verwendet werden, was in einen Wert konvertiert wird (eine Konstante, eine Variable oder eine Methode, die einen Wert zurückgibt).

Verwandte Themen