SQLException: Kein geeigneter Treiber für jdbc gefunden: derby: // localhost: 1527

Ich erhalte diesen Fehler in Netbeans:

java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/ 

Wie wird das verursacht und wie kann ich es lösen?

Solutions Collecting From Web of "SQLException: Kein geeigneter Treiber für jdbc gefunden: derby: // localhost: 1527"

java.sql.SQLException: Kein geeigneter Treiber für jdbc gefunden: derby: // localhost: 1527 /

Diese Ausnahme hat zwei Ursachen:

  • Der Treiber ist nicht geladen.
  • Die JDBC-URL ist errorshaft.

In Ihrem Fall würde ich erwarten, einen databasenamen am Ende der Verbindungszeichenfolge zu sehen. Zum Beispiel (benutze create=true wenn die database erstellt werden soll, wenn sie nicht existiert):

 jdbc:derby://localhost:1527/dbname;create=true 

databaseen werden standardmäßig in dem Verzeichnis erstellt, in dem der Netzwerkserver gestartet wurde. Sie können jedoch auch einen absoluten Pfad zum databasespeicherort angeben:

 jdbc:derby://localhost:1527//home/pascal/derbyDBs/dbname;create=true 

Und nur für den Fall, dass derbyclient.jar auf dem classnpfad ist und dass Sie den entsprechenden Treiber org.apache.derby.jdbc.ClientDriver wenn Sie im Server-Modus arbeiten.

Hinweis: Sie können es von hier herunterladen.

Wenn Sie es nicht finden können, dann

  1. Suchen Sie Ihr Projekt auf der Registerkarte Projektauswahl

  2. Rechtsklick auf “Bibliotheken”

  3. Klicken Sie auf “JAR / Ordner hinzufügen …”

  4. Wählen Sie “derbyclient.jar”

  5. Klicke auf “Öffnen”, dann wirst du “derbyclient.jar” unter deinen “Bibliotheken” sehen

Stellen Sie sicher, dass Ihre URL, der Benutzername und das Passwort korrekt sind, und führen Sie Ihren Code aus 🙂

Für mich

 DriverManager.registerDriver(new org.apache.derby.jdbc.EmbeddedDriver()); 

geholfen. Auf diese Weise kennt der DriveManager den Derby EmbeddedDriver. Vielleicht ist das Zuweisen eines neuen EmbeddedDriver zu schwer, aber auf der anderen Seite muss Class.forName try / catch / doSomethingIntelligentWithException verwenden, was ich nicht besonders mag.

Der JDBC DriverManager kann für die angegebene Verbindungs-URL keinen geeigneten Driver finden. Entweder wird der JDBC-Treiber überhaupt nicht geladen, bevor die DB verbunden wird, oder die Verbindungs-URL ist falsch. Da die Verbindungs-URL gut aussieht, wette ich, dass der Treiber überhaupt nicht geladen ist. Sie müssen den Treiber während des Startvorgangs der Anwendung laden, bevor Sie die database verbinden. Für Apache Derby lautet der Name der org.apache.derby.jdbc.ClientDriver . Damit:

 Class.forName("org.apache.derby.jdbc.ClientDriver"); 

Ich hatte das gleiche Problem, als ich Java-Anwendung auf Netbeans schrieb. Hier ist die Lösung:

  1. Suchen Sie Ihr Projekt auf der Registerkarte Projektauswahl

  2. Rechtsklick auf “Bibliotheken”

  3. Klicken Sie auf “JAR / Ordner hinzufügen …”

  4. Wählen Sie “derbyclient.jar”

  5. Klicke auf “Öffnen”, dann wirst du “derbyclient.jar” unter deinen “Bibliotheken” sehen

  6. Stellen Sie sicher, dass Ihre URL, der Benutzername und das Passwort korrekt sind, und führen Sie Ihren Code aus 🙂

Wenn Sie Embedded Derby verwenden, benötigen Sie Derby.jar in Ihrem classnpfad.

Die Frage wird beantwortet, bietet aber eine Befehlszeile zur Veranschaulichung. Das funktionierte für mich, als ich einen möglichst einfachen Test versuchte, um den Netzwerkmodus derby zu verbinden.

  • Treiber geladen in App mit: Class.forName (“org.apache.derby.jdbc.ClientDriver”). NewInstance ();

  • Die Verbindungs-URL lautet: “jdbc: derby: // localhost: 1527 / myDB; create = true”

  • Ich habe meine App mit folgendem Befehl ausgeführt: java -classpath derbyclient.jar :. myAppClass

Ich habe das getriggers, indem ich der Bibliothekskonsole unter meinem Projekt eine Bibliothek hinzugefügt habe:

  • Rechtsklick und dann Bibliothek hinzufügen
  • Füge JAVA DB TREIBER hinzu.

Mein Projekt funktioniert!

Ich stand vor demselben Problem. Mir fehlte der Aufruf DriverManager.registerDriver (), bevor die Verbindung mithilfe der Verbindungs-URL und der Benutzeranmeldeinformationen abgerufen wurde.

Es wurde unter Linux wie folgt behoben:

 DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); connection = DriverManager.getConnection("jdbc:derby://localhost:1527//tmp/Test/DB_Name", user, pass); 

Für Windows:

 DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); connection = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/Users/Test/DB_Name", user, pass); 

Es ist auch möglich, dass in der Datei persistence.xml EmbeddedDriver verwendet wurde, während die jdbc-URL auf den Derby-Server zeigte. In diesem Fall ändern Sie einfach die URL in den Pfad der database.

Wenn die database erstellt wurde und Sie die Verbindung mit der database hergestellt haben, müssen Sie den Treiber-Jar hinzufügen. Klicken Sie im Projektfenster mit der rechten Maustaste auf den Bibliotheksordner, gehen Sie zu c: programsfiles \ sun \ javadb \ lib \ derbyclient.jar. Lade die Datei und du solltest in der Lage sein zu laufen.

Alles Gute

Ich habe alles versucht, was in diesem Thread erwähnt wurde und nur .registerDriver () hat für mich gearbeitet. So sieht mein Code jetzt aus:

 DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver()); connection = DriverManager.getConnection(url, user, pass); 

Beachten Sie, dass das Problem nicht in eingebettetem Derby lag.

Sie können den gleichen Fehler auch erhalten, wenn der Java DB-Server nicht gestartet wurde.

Möglicherweise fehlen Sie, um den Derby-Server zu starten. Sobald ein Derby-Server gestartet wird, beginnt er den Standard-Port 1527 zu hören.

Das Start-Skript befindet sich wie folgt:

Windows:

  /bin/startNetworkServer.bat 

Linux:

  /bin/startNetworkServer 

Dieser Fehler tritt auf, wenn die Syntax der Verbindungszeichenfolge nicht gültig ist.

Sie können die Verbindungszeichenfolge als verwenden

 'jdbc:derby:MyDbTest;create=true' 

oder

Sie können den folgenden Befehl in der Eingabeaufforderung verwenden, der folgende Befehl erstellt eine neue database namens MyDbTest erfolgreich:

 connect 'jdbc:derby:MyDbTest;create=true'; 

Ich bin gerade auf dieses Problem gestoßen, habe alle obigen Vorschläge ausprobiert, bin aber trotzdem gescheitert. Ohne zu wiederholen, was oben vorgeschlagen wurde, hier sind die Dinge, die ich (Sie) möglicherweise fehlen: Falls Sie Maven verwenden, werden Sie wahrscheinlich die Abhängigkeiten angeben, dh:

 org.apache.derby derbyclient 10.10.1.1 

Bitte sei vorsichtig mit der Version. Es muss mit der Serverinstanz kompatibel sein, die Sie ausführen.

Ich triggerse meinen Fall, indem ich aufgab, welche Mavenabhängigkeiten zur Verfügung gestellt wurden, und manuell ein externes Jar von “% JAVA_HOME% \ db \ lib”, der gleichen Quelle meines laufenden Servers, hinzufügte. In diesem Fall teste ich mit meinem Local.

Wenn Sie mit einer Remote-Server-Instanz testen, suchen Sie nach der Derbyclient.jar, die mit dem Server-Paket geliefert wird.

Ich sah ein ähnliches Problem und es wurde getriggers, indem derby.jar, derbyclient.jar, derbynet.jar und derbytools.jar Gläser in Ihrem classnpfad in Eclipse.

Befolgen Sie die Schritte-

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt und wählen Sie Build-Pfad -> Build-Pfad konfigurieren.
  2. Gehen Sie zur Registerkarte Bibliotheken und klicken Sie auf ‘Externe JARs hinzufügen’.

  3. Wählen Sie die oben genannten Dateien aus dem Pfad aus, zB C: \ Programme \ Java \ jdk1.8.0_161 \ db \ lib

  4. Klicken Sie auf OK.

Hoffe das hilft 🙂