Je reçois cette erreur dans Netbeans:
Java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/
Comment cela est-il causé et comment puis-je le résoudre?
Java.sql.SQLException: Aucun pilote approprié trouvé pour jdbc: derby: // localhost: 1527 /
Cette exception a deux causes:
Dans votre cas, je m'attendrais à voir un nom de la base de données à la fin de la chaîne de connexion. Par exemple (utilisez create=true
si vous souhaitez que la base de données soit créée si elle n'existe pas):
jdbc:derby://localhost:1527/dbname;create=true
Les bases de données sont créées par défaut dans le répertoire où le serveur de réseau a été démarré. Mais vous pouvez également spécifier un chemin absolu vers l'emplacement de la base de données:
jdbc:derby://localhost:1527//home/Pascal/derbyDBs/dbname;create=true
Et juste au cas où, vérifiez que derbyclient.jar est sur le chemin de classe et que vous chargez le pilote approprié org.Apache.derby.jdbc.ClientDriver
lorsque vous travaillez en mode serveur.
Remarque: vous pouvez le télécharger depuis ici .
Si vous ne le trouvez pas, alors
Trouvez votre projet dans l'onglet de sélection des projets
Clic droit "Bibliothèques"
Cliquez sur "Ajouter un fichier JAR/dossier ..."
Choisissez "derbyclient.jar"
Cliquez sur "Ouvrir", vous verrez alors "derbyclient.jar" sous votre "Bibliothèques"
Assurez-vous que votre URL, nom d'utilisateur, mot de passe est correct et lancez votre code :)
Pour moi
DriverManager.registerDriver(new org.Apache.derby.jdbc.EmbeddedDriver());
aidé. De cette manière, DriveManager connaît le derby EmbeddedDriver. L’allocation d’un nouveau pilote EmbeddedDriver est peut-être trop lourde, mais de l’autre côté, Class.forName a besoin de try/catch/doSomethingIntelligentWithException que je n’aime pas beaucoup.
JDBC DriverManager
ne peut trouver aucune Driver
appropriée pour l'URL de connexion donnée. Soit le pilote JDBC n'est pas chargé avant la connexion à la base de données, soit l'URL de connexion est incorrecte. Puisque l'URL de connexion a l'air bien, je parie que le pilote n'est pas chargé du tout. Avant de connecter la base de données, vous devez charger le pilote au démarrage de l'application. Pour Apache Derby, le nom de la classe de pilote est org.Apache.derby.jdbc.ClientDriver
. Alors:
Class.forName("org.Apache.derby.jdbc.ClientDriver");
J'ai eu le même problème lorsque j'écrivais une application Java sur Netbean. Voici la solution:
Trouvez votre projet dans l'onglet de sélection des projets
Clic droit "Bibliothèques"
Cliquez sur "Ajouter un fichier JAR/dossier ..."
Choisissez "derbyclient.jar"
Cliquez sur "Ouvrir", vous verrez alors "derbyclient.jar" sous votre "Bibliothèques"
Assurez-vous que votre URL, votre nom d'utilisateur, votre mot de passe sont corrects et exécutez votre code :)
J'ai résolu ce problème en ajoutant une bibliothèque à la console de bibliothèque située sous mon projet:
Mon projet fonctionne!
La question reçoit une réponse mais fournit une ligne de commande à titre d'illustration. Cela a fonctionné pour moi lorsque j'ai essayé un test aussi simple que possible pour me connecter au derby en mode réseau.
Pilote chargé dans l'application avec: Class.forName ("org.Apache.derby.jdbc.ClientDriver"). NewInstance ();
L'URL de connexion était: "jdbc: derby: // localhost: 1527/myDB; create = true"
J'ai exécuté mon application en utilisant: Java -classpath derbyclient.jar :. myAppClass
Si vous utilisez Derby embedded, vous avez besoin de Derby.jar dans votre chemin de classe.
Je faisais face au même problème. Il me manquait l'appel de DriverManager.registerDriver () avant la connexion à l'aide de l'URL de connexion et des informations d'identification de l'utilisateur.
Il a été corrigé sous Linux comme ci-dessous:
DriverManager.registerDriver(new org.Apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection("jdbc:derby://localhost:1527//tmp/Test/DB_Name", user, pass);
Pour les fenêtres:
DriverManager.registerDriver(new org.Apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection("jdbc:derby://localhost:1527/C:/Users/Test/DB_Name", user, pass);
Il se peut qu'il vous manque pour démarrer le serveur Derby . Dès qu'un serveur Derby démarre, il commence à écouter le port par défaut 1527.
Le script de démarrage se trouve comme ci-dessous:
Les fenêtres:
<DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer.bat
Linux:
<DERBY_INSTALLATION_DIRECTORY>/bin/startNetworkServer
J'ai rencontré un problème similaire et cela a été résolu en incluant les fichiers jar derby.jar, derbyclient.jar, derbynet.jar et derbytools.jar dans votre chemin de classe dans Eclipse.
Suivez les étapes -
Allez dans l'onglet Bibliothèques et cliquez sur 'Ajouter un JAR externe'.
Sélectionnez les pots mentionnés ci-dessus dans le chemin, par exemple. C:\Program Files\Java\jdk1.8.0_161\db\lib
Cliquez sur OK.
J'espère que cela t'aides :)
Cette erreur se produit lorsque la syntaxe de la chaîne de connexion n'est pas valide.
Vous pouvez utiliser la chaîne de connexion comme
'jdbc:derby:MyDbTest;create=true'
ou
vous pouvez utiliser la commande suivante dans la commande Invite, la commande ci-dessous crée une nouvelle base de données appelée MyDbTest
avec succès:
connect 'jdbc:derby:MyDbTest;create=true';
J'ai essayé tout ce qui est mentionné dans ce fil et seul .registerDriver () a fonctionné pour moi. Voici à quoi ressemble ma partie de code:
DriverManager.registerDriver(new org.Apache.derby.jdbc.ClientDriver());
connection = DriverManager.getConnection(url, user, pass);
Notez que le problème n'était pas dans Derby intégré.
Il est également possible que dans persistence.xml, EmbeddedDriver ait été utilisé alors que l’URL jdbc pointait vers le serveur Derby. Dans ce cas, il suffit de changer l'URL pour pointer un chemin de la base de données.
Je suis tombé sur ce problème, j'ai essayé toutes les suggestions ci-dessus, mais j'ai échoué. Sans répéter ce qui a été suggéré ci-dessus, voici ce que je (vous) peux manquer: Si vous utilisez maven, vous déclarerez probablement les dépendances, à savoir:
<groupId>org.Apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.10.1.1</version>
S'il vous plaît soyez prudent avec la version. Il doit être compatible avec l'instance de serveur que vous exécutez.
J'ai résolu mon cas en abandonnant les dépendances maven fournies et en ajoutant manuellement un fichier JAR externe à partir de "% Java_HOME%\db\lib", la même source que mon serveur en cours d'exécution. Dans ce cas, je teste avec ma section locale.
Ainsi, si vous testez avec une instance de serveur distant, recherchez le fichier derbyclient.jar fourni avec le package de serveur.
si la base de données est créée et que vous avez démarré la connexion à la, alors vous devez ajouter le fichier jar du pilote. Dans la fenêtre du projet, cliquez avec le bouton droit de la souris sur le dossier des bibliothèques, puis allez à: programmesfiles\Sun\javadb\lib\derbyclient.jar charger le fichier et vous devriez pouvoir courir.
bonne chance
Vous pouvez également obtenir la même erreur si le serveur Java DB n'a pas été démarré.