Comment se connecter à une base de données MySQL en utilisant Java
Java fournit JDBC (Java Database Connectivity) dans le cadre du Java SDK (Software Development Kit). Grâce à cette API, il est très facile de se connecter à une base de données relationnelle et d’effectuer des opérations courantes telles que l’interrogation, l’insertion, la mise à jour et la suppression d’enregistrements.
Bien que l’API JDBC principale soit incluse dans Java, la connexion à une base de données spécifique telle que MySQL ou SQL Server nécessite un module complémentaire appelé pilote de base de données. Le pilote de base de données est un composant logiciel qui traduit les appels JDBC principaux dans un format que la base de données comprend.
Dans cet article, examinons les détails de la connexion à une base de données MySQL et comment l’utiliser pour effectuer certaines requêtes.
Pilote de base de données MySQL
Comme mentionné ci-dessus, pour pouvoir se connecter à une base de données MySQL, vous avez besoin d’un pilote JDBC pour MySQL. Il s’agit du pilote Connector/J et peut être téléchargé à partir du site MySQL ici.
Après avoir téléchargé le fichier ZIP (ou TAR.GZ), extrayez l’archive et copiez le fichier JAR mysql-connector-java–bin.jar à l’endroit approprié. Ce fichier est requis pour exécuter tout code utilisant le pilote MySQL JDBC.
Créer un exemple de base de données
En supposant que vous avez téléchargé la base de données MySQL et que vous l’avez correctement configurée pour y accéder, créons un exemple de base de données afin que nous puissions l’utiliser pour nous connecter et exécuter des requêtes.
Faire une vidéo du jour
Connectez-vous à la base de données à l’aide du client de votre choix et exécutez l’instruction suivante pour créer l’exemple de base de données.
créer des échantillons de base de données ;
Nous avons également besoin d’un nom d’utilisateur et d’un mot de passe pour se connecter à la base de données (sauf si vous souhaitez vous connecter en tant qu’administrateur, ce qui est généralement une mauvaise idée).
Créez un utilisateur nommé ci-dessous utilisateur d’essai qui se connectera à la base de données MySQL à partir de la même machine sur laquelle elle s’exécute (en hôte local), utilisez un mot de passe Code de sécurité.
Créez l’utilisateur « testuser »@ »localhost » identifié par « securepwd » ;
Si vous vous connectez à une base de données exécutée sur une autre machine (nommée télécommande), vous devez utiliser les éléments suivants (télécommande Peut être un nom d’hôte ou une adresse IP) :
Créez l’utilisateur « testuser »@ »remotemc » identifié par « securepwd » ;
Maintenant que le nom d’utilisateur et le mot de passe ont été créés, nous devons accorder l’accès à l’exemple de base de données précédemment créé.
tous les échantillons. * accorder « testuser »@ »localhost » ;
Ou, si la base de données est distante :
tous les échantillons. * accorder « testuser »@ »remotemc » ;
Vous devez maintenant vérifier que vous pouvez vous connecter à la base de données en utilisant le même mot de passe que l’utilisateur que vous venez de créer. Vous pouvez également exécuter les commandes suivantes après vous être connecté pour vous assurer que les autorisations sont toutes correctes.
Créer la table joe(id int clé primaire auto_increment, nom varchar(25));
laisse tomber la table joe;
Définir le chemin de classe Java
Voyons maintenant en détail comment se connecter à MySQL depuis Java. La première étape consiste à charger le pilote de base de données. Cela se fait en invoquant les commandes suivantes aux emplacements appropriés.
Class.forName(« com.mysql.jdbc.Driver »);
Ce code peut déclencher une exception, donc si vous envisagez de le gérer (par exemple, pour formater un message d’erreur pour l’interface graphique), vous pouvez l’attraper.
essayer {
Class.forName(« com.mysql.jdbc.Driver »);
} catch(ClassNotFoundException ex) {
// utilise une exception ici
}
Il est courant d’appeler ce code dans un bloc statique d’une classe, donc si le pilote ne peut pas être chargé, le programme échoue immédiatement.
exemple de classe publique
{
Stationnaire {
essayer {
Class.forName(« com.mysql.jdbc.Driver »);
} catch(ClassNotFoundException ex) {
System.err.println(« Impossible de charger le pilote MySQL »);
}
}
}
Bien sûr, afin de pouvoir trouver le pilote, le programme doit être invoqué avec le pilote JAR (téléchargé et extrait ci-dessus) inclus dans le classpath, comme indiqué ci-dessous.
java -cp mysql-connector-java-
Connectez-vous à MySQL depuis Java
Maintenant que nous avons abordé les détails du chargement du pilote MySQL à partir de Java, connectons-nous à la base de données.Une façon de créer une connexion à une base de données consiste à utiliser gestionnaire de disque.
Chaîne jdbcUrl = …;
connexion con = DriverManager.getConnection(jdbcUrl);
qu’est-ce que jdbcUrl• Il représente les détails de connexion, y compris le serveur sur lequel se trouve la base de données, le nom d’utilisateur, etc. Voici un exemple d’URL pour notre exemple.
Chaîne jdbcUrl = « jdbc:mysql://localhost/sample?user=testuser&password=secrepwd » ;
Notez que nous avons inclus tous les paramètres nécessaires à la connexion, y compris le nom d’hôte (hôte local), nom d’utilisateur et mot de passe. (Inclure un tel mot de passe n’est pas une bonne pratique, voir ci-dessous pour une alternative.)
utilisez ceci jdbcUrlqui est un programme complet pour vérifier la connectivité.
exemple de classe publique
{
Stationnaire {
essayer {
Class.forName(« com.mysql.jdbc.Driver »);
} catch(ClassNotFoundException ex) {
System.err.println(« Impossible de charger le pilote MySQL »);
}
}
statique public void main(string[] args) lève une exception
{
Chaîne jdbcUrl = « jdbc:mysql://localhost/sample?user=testuser&password=securepwd » ;
connexion con = DriverManager.getConnection(jdbcUrl);
System.out.println(« Connecté! »);
con.close();
}
}
Notez que les connexions à la base de données sont des ressources précieuses dans votre programme et doivent être fermées correctement comme décrit ci-dessus. Cependant, le code ci-dessus ne ferme pas la connexion en cas d’exception. Afin de fermer la connexion en cas de sortie normale ou anormale, utilisez le schéma suivant :
essayez(configuration de connexion = DriverManager.getConnection(jdbcUrl)){
System.out.println(« Connecté! »);
}
Comme mentionné ci-dessus, l’intégration du mot de passe dans l’URL JDBC est une mauvaise idée. Pour spécifier directement le nom d’utilisateur et le mot de passe, vous pouvez utiliser les options de connexion suivantes à la place.
Chaîne jdbcUrl = « jdbc:mysql://localhost/sample » ;
try(connect con = DriverManager.getConnection(jdbcUrl, « testuser », « securepwd »)) {
}
Interroger la base de données à partir de Java
Maintenant que la connexion à la base de données est établie, voyons comment exécuter une requête, comme interroger la version de la base :
selectversion();
La requête est exécutée en Java comme suit.Une sorte de déclaration créer un objet et l’utiliser exécuter l’ordre() retourner une méthode ensemble de résultats.
String queryString = « Sélectionner la version() » ;
Instruction stmt = con.createStatement();
Ensemble de résultats rset = stmt.executeQuery(queryString);
de la version imprimée ensemble de résultats comme suit. 1 Fait référence à l’index de la colonne dans le résultat, en commençant à 1.
tandis que (rset.next()) {
System.out.println(« Version : » + rset.getString(1));
}
Après avoir traité le résultat, l’objet doit être fermé.
rset.close();
stmt.close();
Cela couvre tout, de Java à la connexion à MySQL et à l’exécution de requêtes simples.
Consultez également notre aide-mémoire sur les commandes SQL.
A propos de l’auteur