Nous allons vous présenter un guide complet étape par étape pour créer une connexion Java avec une base de donnée MySql en utilisant l’IDE Eclipse et le driver JBDC pour MySql.
1 – Créer un projet Eclipse
Un projet dans Eclipse est essentiellement un dossier contenant tout le code source et d’autres fichiers nécessaires.
construisez votre programme. Commençons par créer un projet pour votre programme.
1. Ouvrez Eclipse
2. Dans le menu Fichier, sélectionnez New → Java Project
3. Donnez un nom à votre projet, par exemple DBDemo.
Vous pouvez utiliser les valeurs par défaut pour tous les autres paramètres. Notez le dossier du projet, vous devrez vous en souvenir plus tard.
Cliquez ensuite sur le bouton Finish, pour créer le projet. Vous devriez à ce moment là voir un projet Java vide qui ressemble à ceux-ci :
4 – Créer un package et une classe Java
Choisissez depuis le menu File ->New ->package
et puis donnez un nom à votre package demojdbc par exemple
Choisissez ensuite depuis le menu File ->New ->Class
Donnez ensuite un nom à la classe DemoJdbc par exemple. Vous obtenez un projet de ce type :
2 – Téléchargement et installation du driver JDBC pour mysql
2.1 – Téléchargement du driver JDBC pour mysql
Pour pouvoir connecter Java avec mysql, il nécessaire, télécharger et installer mysql connector for Java. Ce dernier est téléchargeable depuis l’adesse: https://dev.mysql.com/downloads/file/?id=480091
Cette page, vous invite à créer un compte et à vous connecter. Mais vous pouvez surpasser cette étape en cliquent sur le lien en bas :
No thanks, just start my download
Après avoir télécharger l’archive, décompressez la et vous allez trouver à l’intérieur un fichier jar nommé : mysql-connector-java-5.1.47-bin.jar :
Sélectionnez votre projet sur Eclipse, et cliquez sur le menu File ->New -> Folder, pour créez un nouveau dossier, donnez le un nom lib par exemple :
Maintenant à l’aide de la sourie, faite un click droit sur le dossier lib et pointez sur le menu import:
Ensuite depuis le menu General, choisissez le sous menu File System:
Continuez ensuite votre navigation jusqu’à ce que vous trouviez le fichier mysql-connector-java-5.1.47-bin.jar , séléctionnez le et cliquez sur le bouton Finish:
Le fichier est maintenant visible sur l’explorateur de fichier d’Eclipse :
Veuillez ensuite informer Eclipse du fichier : mysql-connector-java-5.1.47-bin.jar, afin de le prendre en compte :
A l’aide du bouton droit de la sourie sur le dossier lib de votre projet Eclipse, cliquez sur Properties et choisissez ensuite le menu Java Build Path:
Sélectionnez ensuite l’archive jar qui se trouve dans le dossier lib du projet Eclipse :
Si les étapes sont correctement exécutés vous devriez voir l’archive jar dans Referenced Librairies:
3 – Connexion de Java avec Mysql en utilisant le driver JDBC
3.1 – Lecture et affichage des données
Afin de pouvoir créer un test de connexion de Java avec MySql, il va falloir installer un serveur MySql. Plusieurs choix s’offrent à vous WampServer , xampp, EasyPHP…Nous vous recommandons pour cela d’utiliser WampServer.
Voici un tutoriel vidéo qui vous explique comment utiliser wampserver. Commencez par lancer votre serveur et créez ensuite une base de donnée, nommez la school par exemple et au sein de laquelle créer une table MySql comportant les champs : id, nom, email, age… nommez la students par exemple :
Maintenant, tout est près, vous pouvez donc commencer à communique le langage Java avec les bases de données MySql. Pour cela veuillez suivre les étapes suivantes :
1 – Charger le driver mysql
Class.forName("com.mysql.jdbc.Driver");
2 – Créer un objet connection en utilisant la classe Connection:
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/school","root","");
3 – Créer un état de connexion
Statement stm=con.createStatement();
4 – Créer et exécuter une requete sql en utilisant la classe ResultSet
ResultSet res=stm.executeQuery("select * from students");
5 – parcourir les données de la table res
Les données sont maintenant récupérées sur l’objet res pour accéder à la valeur d’un champ on utilise les méthodes getInt(numéro de la colonne), getDouble(numéro de la colonne), getString( numéro de la colonne)… selon le type du champ de la table ( int, double, String…).
Exemple pour la 2ème colonne qui contient les noms du type String on utilise la syntaxe :
res.getString(2);
Et afin de parcourir les données successivement une après l’autre du début de la sélection jusqu’à la fin de la sélection, on utilise la boucle while :
while (res.next()){
System.out.println("id :"+res.getInt(1)+" nom : "+res.getString(2)
//Cet exemple affiche les données de la 1ère colonne et les données de la 2ème colonne
}
6 – Fermer la connection
con.close();
Finalement pour que le code fonctionne correctement sans aucun problème, il doit être encadré dans un try-catch:
Exemple avec code complet
import java.sql.*;
public class DemoJdbc {
public static void main (String[] args) {
try{
// 1 - charger le driver mysql
Class.forName("com.mysql.jdbc.Driver");
// 2 - créer la connection
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/school","root","");
// 3 - créer un état de connexion
Statement stm=con.createStatement();
// 4 - Créer et exécuter une requette
ResultSet res=stm.executeQuery("select * from students");
// 5 - parcour les données de la table res
while (res.next()){
System.out.println("id :"+res.getInt(1)+" nom : "+res.getString(2) +" Email : "+ res.getString(3));
System.out.println("-----------------------------------------------");
}
// 6 - Fermer la connection
con.close();
// 7..traitement des exeption
}catch (Exception e) {
System.out.println("ERROR :"+e.getMessage());
}
}
}
Ce qui affiche après exécution :
id :1 nom : David Email : david@gmail.com
——————————————————
id :2 nom : Jessica Email : Jessica@gmail.com
——————————————————
id :3 nom : Robert Email : robert@gmail.com
——————————————————
id :4 nom : Alberto Email : Albert@gmail.com
——————————————————
id :5 nom : Paul Email : Paul@gmail.com
——————————————————
id :6 nom : Hilbert Email : Hilbert@gmail.com
——————————————————
id :7 nom : Catherine Email : catherine@gmail.com
——————————————————
id :8 nom : Jonathan Email : Jonathan@gmail.com
——————————————————
id :9 nom : Orlando Email : orlando@gmail.com
——————————————————
id :10 nom : Tobias Email : tobias@gmail.com
——————————————————
id :11 nom : Martin Email : martin@gmail.com
——————————————————
id :12 nom : Bernard Email : bernard@gmail.com
——————————————————
3.2 – Insertion des donnée
Pour insérer des données mysql avec Java, on procède de la même manière que précédemment avec une toute petite modification, oon remplace juste le code de sélection de la table par une requête d’insertion des données:
String query = "INSERT INTO students (`name` , `email`) " + "VALUES ( 'Robert', 'robert@gmail.com')";
stm.executeUpdate(query);
Code final
import java.sql.*;
public class AddStudents {
public static void main(String[] args) {
try{
// 1 - charger le driver mysql
Class.forName("com.mysql.jdbc.Driver");
// 2 - créer la connection
//:3306/Peoples?autoReconnect=true&useSSL=false
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/mydatabase?&useSSL=false","root","root");
// 3 - créer un état de connexion
Statement stm=con.createStatement();
// 4 - Créer et exécuter une requette
String query = "INSERT INTO students (`name` , `email`) " + "VALUES ( 'Robert', 'robert@gmail.com')";
stm.executeUpdate(query);
// 5 - parcourir les données de la table
/*
while (res.next()){
System.out.println("id :"+res.getInt(1)+" nom : "+res.getString(2) +" Email : "+ res.getString(3));
System.out.println("-----------------------------------------------");
}
*/
// 6 - Fermer la connection
con.close();
// 7..traitement des exeption
}catch (Exception e) {
System.out.println("ERROR :"+e.getMessage());
}
}
}