SQLException: Ne convient pas trouvé de driver jdbc:derby://localhost:1527
J'obtiens cette erreur dans Netbeans:
java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/
Comment est-il la cause et comment puis-je le résoudre?
- Double Possible de L'infâme java.sql.SQLException: Ne convient pas trouvé de driver
Vous devez vous connecter pour publier un commentaire.
Cette exception a deux causes:
Dans votre cas, je m'attends à voir un nom de base de données à la fin de la chaîne de connexion. Par exemple (utilisation
create=true
si vous voulez que la base de données sera créée si elle n'existe pas):Bases de données sont créés par défaut dans le répertoire dans lequel le Serveur de Réseau a été mis en place. Mais vous pouvez également spécifier un chemin d'accès absolu à l'emplacement de base de données:
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.Avis: vous pouvez le télécharger à partir ici.
Si vous ne pouvez pas le trouver, alors
Trouver votre projet dans les projets de sélection de l'onglet
À droite, cliquez sur "Bibliothèques"
Cliquez sur "Add JAR/Folder..."
Choisir "derbyclient.jar"
Cliquez sur "Ouvrir", puis vous verrez "derbyclient.jar" sous votre "Bibliothèques"
Assurez-vous que votre URL, nom d'utilisateur, le mot de passe est correct, et exécuter votre code:)
Pour moi
aidé. De cette façon, le DriveManager ne sais le derby EmbeddedDriver. Peut-être que l'allocation d'une nouvelle EmbeddedDriver est lourd, mais d'un autre côté, la Classe.forName besoins try/catch/doSomethingIntelligentWithException que je n'aime pas beaucoup.
JDBC
DriverManager
ne pouvez pas trouver un adaptéDriver
pour l'URL de connexion. Soit le pilote JDBC n'est pas chargé du tout avant de le connecter à la DB, ou l'URL de connexion est mauvaise. Depuis l'URL de connexion a l'air bien, je parie que le pilote n'est pas chargé du tout. Vous devez charger le pilote lors d'un démarrage de l'application, avant de le connecter à la DB. Pour Apache Derby, le pilote du nom de la classe estorg.apache.derby.jdbc.ClientDriver
. Donc:J'ai eu le même problème quand j'ai écrit le application Java sur Netbeans.Voici la solution:
Trouver votre projet dans les projets de sélection de l'onglet
À droite, cliquez sur "Bibliothèques"
Cliquez sur "Add JAR/Folder..."
Choisir "derbyclient.jar"
Cliquez sur "Ouvrir", puis vous verrez "derbyclient.jar" sous votre "Bibliothèques"
Assurez-vous que votre URL, nom d'utilisateur, le mot de passe est correct, et exécuter votre code:)
Si votre aide intégrée Derby vous avez besoin Derby.jar dans votre classpath.
La réponse à la question mais la fourniture d'une ligne de commande à des fins d'illustration. Cela a fonctionné pour moi quand j'ai essayé une aussi simple que possible de tester pour vous connecter à un réseau en mode derby.
Pilote chargé dans l'app avec:la Classe.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
L'URL de connexion est: "jdbc:derby://localhost:1527/myDB;create=true"
J'ai couru mon application en utilisant: java -classpath derbyclient.jar:. myAppClass
J'ai résolu ce problème en ajoutant de la bibliothèque à la bibliothèque de la console en dessous de mon projet:
Mon projet est de travailler en !
J'ai été confronté au même problème. J'ai été absent DriverManager.registerDriver() appel, avant d'obtenir la connexion en utilisant l'URL de connexion et d'identification de l'utilisateur.
C'suis fixé sur Linux comme ci-dessous:
Pour Windows:
Il est également possible que dans persistence.xml, EmbeddedDriver a été utilisée lors de l'url jdbc a été pointant vers serveur Derby. Dans ce cas il suffit de modifier l'url pointant vers un chemin d'accès de base de données.
si la base de données est créé et vous avez commencé la connexion à l', puis al que vous avez besoin est d'ajouter le jar du pilote. dans la fenêtre projet, cliquez-droit sur le dossier libraries, goto c:programsfiles\sun\javadb\lib\derbyclient.jar. charger le fichier et vous devriez être en mesure d'exécuter.
tous les meilleurs
J'ai essayé tout ce qui est mentionné dans ce fil, et seulement .registerDriver() a travaillé pour moi. C'est ainsi que ma partie de code ressemble maintenant:
Avis que le problème n'était pas intégré de Derby.
Vous pouvez également obtenir la même erreur si le Java serveur de base de données n'a pas été démarré.
Vous est peut-être manquant pour démarrer le serveur Derby.
Une fois un derby serveur démarre, il commence à écouter de port par défaut 1527.
Script de démarrage est situé comme ci-dessous:
Windows:
Linux:
Cette erreur se produit lorsque la syntaxe de chaîne de connexion n'est pas valide.
Vous pouvez utiliser la chaîne de connexion que
ou
vous pouvez utiliser la commande suivante dans l'invite de commande, la commande ci-dessous crée une nouvelle base de données appelée
MyDbTest
avec succès:Je viens de tombé sur ce problème, essayé toutes les suggestions ci-dessus, mais n'a toujours pas. Sans répéter ce qui a été suggéré ci-dessus, voici les choses que je (vous) peut être manquant:
Dans le cas où vous utilisez maven, vous aurez de chance de l'état les dépendances que j'.e:
Merci de faire attention à la version. Il doit être compatible avec l'instance de serveur en cours d'exécution.
J'ai résolu mon cas, en donnant jusqu'à ce que les dépendances maven fournies et l'ajouter manuellement externe jar à partir de "%JAVA_HOME%\db\lib", la même source de mon serveur en cours d'exécution. Dans ce cas, je suis en essais à l'aide de mon Local.
Donc, si vous faites des tests avec instance de serveur distant, regardez pour les derbyclient.jar qui viennent avec le logiciel serveur.
Je étaient confrontés au même problème et il s'est résolu en y derby.jar, derbyclient.jar, derbynet.jar et derbytools.jar les bocaux dans votre classpath dans eclipse.
Suivre les étapes-
Aller à l'onglet bibliothèques et cliquez sur "Add External JAR" de.
Sélectionnez mentionnés ci-dessus pots de chemin d'accès par exemple C:\Program Files\Java\jdk1.8.0_161\db\lib
Cliquez sur OK.
Espère que cela aide 🙂