Médiaforma

Java – Accès à la base de données dans NetBeans

Print Friendly

Créez un nouveau projet de type Application Java. Nommez-le JDBC1 et cochez la case Create Main Class.

Pour pouvoir interagir avec une base de données MySQL, vous devez passer par un pilote JDBC. Ce pilote est déjà installé dans NetBeans. Vous n’aurez donc pas à l’installer manuellement. Dans le volet Projects, cliquez du bouton droit sur Libraries et choisissez Add Library dans le menu. La boîte de dialogue Add Library s’affiche. Sélectionnez la bibliothèque MySQL JDBC Driver et validez en cliquant sur Add Library :

 

 

Maintenant, votre projet peut accéder au pilote JDBC MySQL, et donc, à toute base de données MySQL.

Insérez les instructions suivantes dans le code généré par NetBeans :

package jdbc1;

import com.mysql.jdbc.Driver;
import java.sql.*;

public class JDBC1 {

public static void main(String[] args) throws SQLException {
Connection connexion = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Le pilote JDBC MySQL a été chargé");
connexion = DriverManager.getConnection("jdbc:mysql://localhost/java", "root", "");

Statement state = connexion.createStatement();
ResultSet result = state.executeQuery("SELECT * FROM membres");
ResultSetMetaData resultMeta = result.getMetaData();

for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print(resultMeta.getColumnName(i).toUpperCase() + " | ");
System.out.println();

while(result.next()){
for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print(result.getObject(i).toString() + " | ");
System.out.println();
}

result.close();
state.close();
connexion.close();

} catch (Exception e) {
e.printStackTrace();
}
}
}

 

Dans un premier temps, on s’assure que la connexion avec le pilote JDBC est possible. Cette instruction est protégée par une instruction try. Si tout se passe bien, un message indiquant que le pilote JDBC est chargé est affiché dans la console :

Class.forName("com.mysql.jdbc.Driver");
System.out.println("Le pilote JDBC MySQL a été chargé");

Dans un deuxième temps, on établit une connexion avec la base de données java :

connexion = DriverManager.getConnection("jdbc:mysql://localhost/java", "root", "");

Dans le premier paramètre passé à la fonction getConnection() :

  • jdbc:mysql correspond au début de l’URL de connexion. Cet bloc commence toujours par jdbc:. Dans notre cas, nous utilisons mysql, la dénomination mysql: suit donc le début de l’URL.
  • localhost indique la localisation de la machine physique sur le réseau. Ici, nous travaillons en local, d’où le terme localhost.
  • test est le nom de la base de données.

Les deux paramètres suivants correspondent au nom d’utilisateur et au mot de passe utilisés pour établir la connexion. Ici, root et aucun mot de passe.

 

Dans un troisième temps, on crée un objet Statement. Par son intermédiaire, on pourra exécuter des commandes SQL pour interroger la base de données et obtenir les résultats correspondants.

Statement state = connexion.createStatement();

 

Dans un quatrième temps, on définit une requête SQL en créant un objet ResultSet à partir de l’objet Statement défini dans l’étape précédente :

ResultSet result = state.executeQuery("SELECT * FROM membres");

 

Dans un cinquième temps, on récupère les métadonnées de la table.

ResultSetMetaData resultMeta = result.getMetaData();

 

Par leur intermédiaire, on pourra obtenir le nombre de colonnes dans la table avec getColumnCount() et le nom des colonnes avec getColumnName() :

for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print(resultMeta.getColumnName(i).toUpperCase() + " | ");
System.out.println();

 

Dans un sixième temps, on fait une boucle while pour récupérer tous les enregistrements de la table :

while(result.next()){

Les données d’un enregistrement sont récupérées une par une avec une boucle for et affichées dans la console :

for(int i = 1; i <= resultMeta.getColumnCount(); i++)
System.out.print(result.getObject(i).toString() + " | ");

 

Après chaque affichage, on saute une ligne pour afficher les enregistrements les uns sous les autres :

System.out.println();

 

Le bloc d’instructions suivant ferme les objets ouverts avec la méthode close() :

result.close();
state.close();
connexion.close();

 

Enfin, la méthode catch() affiche le code de l’erreur si une instruction provoque une erreur dans le bloc try :

catch (Exception e) {
e.printStackTrace();
}
Vous avez aimé cet article ? Partagez-le avec vos réseaux...
 
Comments

No comments yet.

Leave a Reply