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

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

Java fournit JDBC (connectivité de base de données Java) dans le cadre du Java SDK (Software Development Kit). En utilisant ce FEU , 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 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 principaux appels JDBC dans un format compris par cette base de données.





que signifie cet emoji ?

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





Le pilote de base de données MySQL

Comme expliqué ci-dessus, pour pouvoir se connecter à une base de données MySQL, vous avez besoin du pilote JDBC pour MySQL. C'est ce qu'on appelle le pilote Connector/J et peut être téléchargé à partir de le 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-connecteur-java--bin.jar à un endroit approprié. Ce fichier est requis pour exécuter tout code utilisant le pilote MySQL JDBC.



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

En supposant que vous ayez téléchargé la base de données MySQL et le configurer correctement là où vous y 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 d'un client de votre choix et exécutez les instructions suivantes pour créer un exemple de base de données.





create database sample;

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

Ce qui suit crée un utilisateur nommé testeur qui se connectera à la base de données MySQL à partir de la même machine sur laquelle elle s'exécute (indiqué par hôte local ), en utilisant le mot de passe securepwd .





create user 'testuser'@'localhost' identified by '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 ce qui suit ( télécommande peut être un nom d'hôte ou une adresse IP) :

create user 'testuser'@'remotemc' identified by '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.

grant all on sample.* to 'testuser'@'localhost';

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

grant all on sample.* to 'testuser'@'remotemc';

Vous devez maintenant vérifier que vous pouvez se connecter à la base de données que l'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 primary key auto_increment, name varchar(25));
drop table joe;

Configurer le chemin de classe Java

Entrons maintenant dans les détails de la connexion à MySQL à partir de Java. La première étape consiste à charger le pilote de la base de données. Cela se fait en appelant ce qui suit à un emplacement approprié.

comment ajouter un horaire de cours au calendrier google
Class.forName('com.mysql.jdbc.Driver');

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

try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
// use the exception here
}

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

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
}

Bien sûr, pour pouvoir trouver le pilote, le programme doit être invoqué 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:...

Se connecter à MySQL depuis Java

Maintenant que nous avons réglé 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 à la base de données consiste à utiliser le Gestionnaire de pilotes .

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

Et quel est le URL jdbc ? Il indique les détails de la connexion, y compris le serveur où se trouve la base de données, le nom d'utilisateur, etc. Voici un exemple d'URL pour notre exemple.

String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=secrepwd';

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

En utilisant ce URL jdbc , voici un programme complet pour vérifier la connectivité.

public class Sample
{
static {
try {
Class.forName('com.mysql.jdbc.Driver');
} catch(ClassNotFoundException ex) {
System.err.println('Unable to load MySQL Driver');
}
}
static public void main(String[] args) throws Exception
{
String jdbcUrl = 'jdbc:mysql://localhost/sample?user=testuser&password=securepwd';
Connection con = DriverManager.getConnection(jdbcUrl);
System.out.println('Connected!');
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. Le code ci-dessus, cependant, 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('Connected!');
}

Comme indiqué ci-dessus, c'est une mauvaise idée d'intégrer le mot de passe dans l'URL JDBC. Pour spécifier directement le nom d'utilisateur et le mot de passe, vous pouvez utiliser l'option de connexion suivante à la place.

quel est le meilleur vmware ou virtualbox
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 la requête de la version de la base de données :

select 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 renvoie un Ensemble de résultats .

String queryString = 'select version()';
Statement stmt = con.createStatement();
ResultSet rset = stmt.executeQuery(queryString);

Imprimer la version du Ensemble de résultats 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 faut pour se connecter à MySQL à partir de Java et effectuer une requête simple.

Consultez également notre Aide-mémoire des commandes SQL .

Partager Partager Tweeter E-mail Est-il correct d'installer Windows 11 sur un PC incompatible ?

Vous pouvez désormais installer Windows 11 sur des PC plus anciens avec le fichier ISO officiel... mais est-ce une bonne idée de le faire ?

Lire la suite
Rubriques connexes
  • La programmation
  • Java
  • SQL
A propos de l'auteur Jay Sridhar(17 articles publiés) Plus de Jay Sridhar

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner