Comment se connecter à une base de données MySQL avec Java

Comment se connecter à une base de données MySQL avec Java / La programmation

Java fournit JDBC (Java DataBase Connectivity) dans le cadre du kit de développement logiciel (SDK) Java. En utilisant cette API, il est très facile de se connecter à une base de données relationnelle. Qu'est-ce qu'une base de données? [MakeUseOf explique] Alors, quelle est une base de données, de toute façon? [MakeUseOf explique] Pour un programmeur ou un passionné de technologie, le concept de base de données est quelque chose qui peut vraiment être pris pour acquis. Cependant, pour beaucoup de gens, le concept de base de données est un peu étranger… Lire la suite et 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 particulière telle que MySQL ou SQL Server nécessite un composant supplémentaire appelé pilote de base de données. Ce pilote de base de données est un composant logiciel qui traduit les appels JDBC principaux dans un format compris par cette base de données..

Dans cet article, voyons les détails de la connexion à une base de données MySQL et comment effectuer quelques requêtes avec celle-ci..

Le pilote de base de données MySQL

Comme expliqué ci-dessus, pour pouvoir vous connecter à une base de données MySQL, vous devez disposer du pilote JDBC pour MySQL. Ceci s'appelle le pilote Connector / J et peut être téléchargé à partir du site MySQL ici.

Une fois que vous avez téléchargé le fichier ZIP (ou TAR.GZ), extrayez l’archive et copiez le fichier JAR. mysql-connector-java-bin.jar à un endroit approprié. Ce fichier est requis pour exécuter tout code utilisant le pilote MySQL JDBC..

Création d'une base de données exemple

En supposant que vous ayez téléchargé et configuré la base de données MySQL correctement. Comment installer une base de données MySQL sous Windows Comment installer une base de données MySQL sous Windows Si vous écrivez souvent des applications qui se connectent à des serveurs de base de données, il est utile de savoir comment installer une base de données MySQL. sur votre machine Windows à des fins de test. En savoir plus où vous avez accès, laissez-nous créer un exemple de base de données afin que nous puissions l'utiliser pour la connexion et l'exécution de requêtes..

Connectez-vous à la base de données à l'aide du client de votre choix et exécutez les instructions suivantes pour créer un exemple de base de données..

créer un exemple de base de données; 

Nous avons également besoin d'un nom d'utilisateur et d'un mot de passe pour pouvoir nous 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)..

Ce qui suit crée un utilisateur nommé testuser qui se connectera à la base de données MySQL à partir de la même machine que celle sur laquelle elle tourne (indiqué par localhost), en utilisant le mot de passe securepwd.

créer 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 à distance), vous devez utiliser les éléments suivants (à distance peut être un nom d’hôte ou une adresse IP):

créer 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 à la base de données exemple créée précédemment..

accorde tout sur l'échantillon. * à 'testuser' @ 'localhost'; 

Ou, si la base de données est distante:

accorder tout sur l'échantillon. * à 'testuser' @ '' remotemc '; 

Vous devez maintenant vérifier que vous pouvez vous connecter à la base de données. Comment installer une base de données MySQL sous Windows Comment installer une base de données MySQL sous Windows Si vous écrivez souvent des applications qui se connectent à des serveurs de base de données, il est utile de savoir comment installer une base de données MySQL sur votre machine Windows à des fins de test. Lisez Plus en tant qu'utilisateur que vous venez de créer avec le même mot de passe. Vous pouvez également exécuter les commandes suivantes après la connexion pour vous assurer que les autorisations sont toutes correctes..

create table joe (id int clé primaire auto_increment, nom varchar (25)); drop table joe; 

Configurer le chemin de classe Java

Voyons maintenant les détails de la connexion à MySQL à partir de Java. 10 Concepts Java de base à apprendre lors de la mise en route 10 Concepts de base Java à apprendre lors de la mise en route Que vous écriviez une interface graphique, développiez un logiciel côté serveur ou application mobile utilisant Android, apprendre Java vous sera utile. Voici quelques concepts Java de base pour vous aider à démarrer. Lire la suite . La première étape consiste à charger le pilote de base de données. Ceci est fait en invoquant ce qui suit à un endroit approprié.

Class.forName ("com.mysql.jdbc.Driver"); 

Le code peut générer une exception. Vous pouvez donc l'attraper si vous avez l'intention de la gérer (telle que le formatage du message d'erreur pour une interface graphique)..

try Class.forName ("com.mysql.jdbc.Driver");  catch (ClassNotFoundException ex) // utilise l'exception ici 

Il est très courant d'appeler ce code dans un bloc statique de la classe pour que le programme échoue immédiatement si le pilote ne peut pas être chargé..

Classe publique Sample static try Class.forName ("com.mysql.jdbc.Driver");  catch (ClassNotFoundException ex) System.err.println ("Impossible de charger le pilote MySQL");  

Bien entendu, pour pouvoir trouver le pilote, le programme doit être appelé avec le pilote JAR (téléchargé et extrait ci-dessus) inclus dans le chemin de classe comme suit..

java -cp mysql-connector-java--bin.jar:…  

Connexion à MySQL à partir de Java

Maintenant que nous avons défini les détails du chargement du pilote MySQL depuis Java, établissons une connexion à la base de données. Une façon de créer une connexion à une base de données est d’utiliser le DriverManager.

String jdbcUrl =…; Connection con = DriverManager.getConnection (jdbcUrl); 

Et quel est le jdbcUrl? Il indique les détails de la 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.

String jdbcUrl = "jdbc: mysql: // hôte local / échantillon? Utilisateur = testuser & mot de passe = secrepwd"; 

Notez que nous avons inclus tous les paramètres requis pour la connexion, y compris le nom d’hôte (localhost), nom d'utilisateur et mot de passe. (Inclure le mot de passe comme ceci n'est PAS une bonne pratique, voir ci-dessous pour des alternatives.)

En utilisant cette jdbcUrl, voici un programme complet pour vérifier la connectivité.

Classe publique Sample static try Class.forName ("com.mysql.jdbc.Driver");  catch (ClassNotFoundException ex) System.err.println ("Impossible de charger le pilote MySQL");  static public void main (String [] args) lève Exception String jdbcUrl = "jdbc: mysql: // localhost / sample? user = testuser & password = securepwd"; Connection con = DriverManager.getConnection (jdbcUrl); System.out.println ("Connecté!"); con.close ();  

Notez qu'une connexion à une base de données est une ressource précieuse dans un programme et doit être fermée correctement comme ci-dessus. Cependant, le code ci-dessus ne ferme pas la connexion en cas d'exception. Afin de fermer la connexion sur une sortie normale ou anormale, utilisez le modèle suivant:

try (Connection con = DriverManager.getConnection (jdbcUrl)) System.out.println ("Connecté!");  

Comme indiqué ci-dessus, l'incorporation 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 l'option de connexion suivante..

String jdbcUrl = "jdbc: mysql: // localhost / sample"; try (Connection con = DriverManager.getConnection (jdbcUrl, "testuser", "securepwd"))  

Interrogation de la base de données à partir de Java

Maintenant que la connexion à la base de données est établie, voyons comment effectuer une requête, telle que l’interrogation de la version de la base de données:

sélectionnez version (); 

Une requête est exécutée en Java comme suit. UNE Déclaration l'objet est créé et une requête est exécutée à l'aide du exécuter l'ordre() méthode qui retourne un ResultSet.

String queryString = "select version ()"; Instruction stmt = con.createStatement (); ResultSet rset = stmt.executeQuery (queryString); 

Imprimer la version à partir du ResultSet comme suit. 1 fait référence à l'index de la colonne dans les résultats, à partir de 1.

while (rset.next ()) System.out.println ("Version:" + rset.getString (1));  

Après le traitement des résultats, les objets doivent être fermés.

rset.close (); stmt.close (); 

Et cela couvre tout ce qu'il y a à se connecter à MySQL à partir de Java et effectuer une requête simple.

Avez-vous utilisé JDBC avec MySQL dans vos projets? Quels problèmes avez-vous rencontrés avec les bases de données et Java? Veuillez nous en informer dans les commentaires ci-dessous.

En savoir plus sur: Java, SQL.