Comment vous connectez-vous à une base de données MySQL en Java?
Quand j'essaye, je reçois
java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
Ou
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Ou
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
Réponses:
DriverManager
est une façon assez ancienne de faire les choses. La meilleure façon est d'en obtenir unDataSource
, soit en recherchant un que votre conteneur de serveur d'applications déjà configuré pour vous:ou en instanciant et en configurant un directement depuis votre pilote de base de données:
puis en obtenir des connexions, comme ci-dessus:
la source
com.mysql.jdbc.Driver
? cette méthode est-elle meilleure?MysqlDataSource
implémentejavax.sql.DataSource
qui est le mécanisme le plus récent.rs
etstmt
? Pourquoi pas justeconn
?Voici une explication étape par étape comment installer MySQL et JDBC et comment l'utiliser:
Téléchargez et installez le serveur MySQL . Faites-le comme d'habitude. N'oubliez pas le numéro de port chaque fois que vous l'avez modifié. C'est par défaut
3306
.Téléchargez le pilote JDBC et placez-le dans le chemin de classe , extrayez le fichier ZIP et placez le fichier JAR contenant dans le chemin de classe. Le pilote JDBC spécifique au fournisseur est une implémentation concrète de l' API JDBC ( tutoriel ici ).
Si vous utilisez un IDE comme Eclipse ou Netbeans, vous pouvez l'ajouter au chemin de classe en ajoutant le fichier JAR en tant que bibliothèque au chemin de génération dans les propriétés du projet.
Si vous le faites "plain vanilla" dans la console de commande, vous devez spécifier le chemin d'accès au fichier JAR dans l' argument
-cp
ou-classpath
lors de l'exécution de votre application Java.Le
.
est juste là pour ajouter le répertoire courant au chemin de classe afin qu'il puisse le localisercom.example.YourClass
et le;
séparateur de chemin de classe comme il l'est dans Windows. Sous Unix et les clones:
doivent être utilisés.Créez une base de données dans MySQL . Créons une base de données
javabase
. Vous voulez bien sûr World Domination, alors utilisons également UTF-8.Créez un utilisateur pour Java et accordez- lui l'accès . Tout simplement parce que l'utilisation
root
est une mauvaise pratique.Oui,
java
c'est le nom d'utilisateur etpassword
le mot de passe ici.Déterminez l'URL JDBC . Pour connecter la base de données MySQL à l'aide de Java, vous avez besoin d'une URL JDBC dans la syntaxe suivante:
hostname
: Le nom d'hôte sur lequel le serveur MySQL est installé. S'il est installé sur la même machine où vous exécutez le code Java, vous pouvez simplement l'utiliserlocalhost
. Il peut également s'agir d'une adresse IP comme127.0.0.1
. Si vous rencontrez des problèmes de connectivité et que vous les utilisez127.0.0.1
au lieu de leslocalhost
résoudre, vous avez un problème dans votre configuration réseau / DNS / hôtes.port
: Le port TCP / IP sur lequel le serveur MySQL écoute. C'est par défaut3306
.databasename
: Nom de la base de données à laquelle vous souhaitez vous connecter. Voilàjavabase
.L'URL finale devrait donc ressembler à:
Testez la connexion à MySQL en utilisant Java . Créez une classe Java simple avec une
main()
méthode pour tester la connexion.Si vous obtenez un
SQLException: No suitable driver
, cela signifie que le pilote JDBC n'a pas du tout été chargé automatiquement ou que l'URL JDBC est incorrecte (c'est-à-dire qu'elle n'a été reconnue par aucun des pilotes chargés). Normalement, un pilote JDBC 4.0 doit être chargé automatiquement lorsque vous le déposez simplement dans le chemin de classe d'exécution. Pour exclure l'un et l'autre, vous pouvez toujours le charger manuellement comme ci-dessous:Notez que l'
newInstance()
appel n'est pas nécessaire ici. C'est juste pour réparer l'ancien et le buggyorg.gjt.mm.mysql.Driver
. Explication ici . Si cette ligne apparaîtClassNotFoundException
, le fichier JAR contenant la classe de pilote JDBC n'est tout simplement pas placé dans le chemin de classe.Notez que vous n'avez pas besoin de charger le pilote à chaque fois avant de vous connecter. Une seule fois au démarrage de l'application suffit.
Si vous obtenez un
SQLException: Connection refused
ouConnection timed out
ou un MySQL spécifiqueCommunicationsException: Communications link failure
, cela signifie que la base de données n'est pas accessible du tout. Cela peut avoir une ou plusieurs des causes suivantes:Pour résoudre l'un ou l'autre, suivez les conseils suivants:
ping
.my.cnf
de la base de données MySQL.--skip-networking option
.finally
.Notez que la fermeture du
Connection
est extrêmement importante. Si vous ne fermez pas les connexions et continuez à en obtenir beaucoup en peu de temps, la base de données risque de manquer de connexions et votre application risque de se casser. Acquérir toujours leConnection
dans unetry-with-resources
déclaration . Ou si vous n'êtes pas encore sur Java 7, fermez-le explicitement dansfinally
untry-finally
bloc. La fermeturefinally
est juste pour s'assurer qu'elle se ferme également en cas d'exception. Cela vaut également pourStatement
,PreparedStatement
etResultSet
.C'était tout pour les problèmes de connectivité. Vous pouvez trouver ici un didacticiel plus avancé sur le chargement et le stockage d'objets de modèle Java complets dans une base de données à l'aide d'une classe DAO de base.
L'utilisation d'un modèle Singleton pour la connexion DB est une mauvaise approche. Voir entre autres questions: http://stackoverflow.com/q/9428573/ . Il s'agit d'une erreur de démarrage n ° 1.
la source
Initialiser les constantes de la base de données
Créez un nom d'utilisateur, un mot de passe, une URL et des pilotes de base de données de propriétés constantes, une limite d'interrogation, etc.
Initialiser la connexion et les propriétés
Une fois la connexion établie, il est préférable de la stocker à des fins de réutilisation.
Créer des propriétés
L'objet de propriétés contient les informations de connexion, vérifiez si elles sont déjà définies.
Connectez la base de données
Connectez-vous maintenant à la base de données en utilisant les constantes et les propriétés initialisées.
Déconnectez la base de données
Une fois que vous avez terminé les opérations de base de données, fermez simplement la connexion.
Tout ensemble
Utilisez cette classe
MysqlConnect
directement après avoir changé nom_base_de_données, nom d'utilisateur et mot de passe, etc.Comment utiliser?
Initialisez la classe de base de données.
Quelque part ailleurs dans votre code ...
C'est tout :) Si quelque chose à améliorer, éditez-le! J'espère que cela vous sera utile.
la source
com.mysql.jdbc.Driver
celajdbc:mysql://localhost:3306/stocks
devrait être utilisé car le premier est obsolète.la source
Voici le minimum dont vous avez besoin pour extraire des données d'une base de données MySQL:
Ajoutez la gestion des exceptions, la configuration, etc. au goût.
la source
Class.forName(...).newInstance()
?Connexion MySQL JDBC avec useSSL.
la source
vous devez avoir le pot de connecteur mysql dans votre chemin de classe.
en Java JDBC API fait tout avec des bases de données. en utilisant JDBC, nous pouvons écrire des applications Java pour
1. Envoyer des requêtes ou mettre à jour SQL vers DB (n'importe quelle base de données relationnelle) 2. Récupérer et traiter les résultats depuis DB
avec ci-dessous trois étapes, nous pouvons récupérer des données de n'importe quelle base de données
la source
Code court et doux.
Pour SQL Server 2012
la source
Connection
J'utilisais il y a quelque temps, cela ressemblait à la façon la plus simple, mais il y avait aussi une recommandation de faire uneif
déclaration - exactementOu quelque chose comme ça :)
Il y a probablement un cas, alors que
getConnection
peut revenirnull
:)la source
Vous pouvez voir toutes les étapes pour connecter la base de données MySQL à partir d'une application Java ici . Pour les autres bases de données, il vous suffit de changer le pilote à la première étape uniquement. Veuillez vous assurer que vous fournissez le bon chemin d'accès à la base de données et le nom d'utilisateur et le mot de passe corrects.
Visitez http://apekshit.com/t/51/Steps-to-connect-Database-using-JAVA
la source
Méthode 1: définissez la variable CLASSPATH.
Dans la commande ci-dessus, j'ai défini le CLASSPATH sur le dossier actuel et le fichier mysql-connector-java-VERSION.jar. Ainsi, lorsque la
java MyClassFile
commande est exécutée, le lanceur d'application Java essaiera de charger toute la classe Java dans CLASSPATH. Et il a constaté que lesDrive
erreurs class => BOOM avaient disparu.Méthode 2:
Remarque: Class.forName ("com.mysql.jdbc.Driver"); Ceci est déconseillé en ce moment 2019 Avr.
J'espère que cela peut aider quelqu'un!
la source
Connexion JDBC MySql:
la source
Télécharger le pilote JDBC
Lien de téléchargement (sélectionnez une plate-forme indépendante): https://dev.mysql.com/downloads/connector/j/
Déplacer le pilote JDBC vers le lecteur C
Décompressez les fichiers et accédez au lecteur C: \. Votre chemin de conducteur devrait être comme
C:\mysql-connector-java-8.0.19\mysql-connector-java-8.0.19
Exécutez votre Java
testMySQL.java
la source
Petit code
la source