Remplir une JTable a partir d’une Base de données

Dans ce tutoriel nous allons découvrir comment remplir une JTable a partir d’une Base de données.

La première chose à faire est de mettre en place notre base de données.

Créer une base de données appelée « test ». Dans la base de données « test », ajoutez une table appelée « user ». La table user prendra les trois champs suivants.

  • id
  • nom
  • age

 
 
Vous pouvez créer ceci en utilisant un client MySQL comme PHPMyAdmin.
 


 
Ou vous pouvez le créer sur l’invite de commande MySQL en utilisant le script SQL suivant :

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  `nom` varchar(100) NOT NULL,
  `age` int(2) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

 
Pour créer une table dans Java Swing, nous utiliserons JTable. La classe javax.swing.JTable est utilisée pour créer une instance d’une table en Java. javax.swing.table.DefaultTableModel fournit le modèle de table. Pour obtenir une meilleure visibilité de table, il est recommandé de mettre la table dans JScrollPane.

Vous pouvez définir les données de la table de différentes manières, mais la façon la plus simple de définir les données de la table consiste à définir un tableau. Voir l’exemple suivant.
 
 

Exemple:
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

public class Main 
{
  public static void main(String[] args) 
  {
    try 
	{
      String url = "jdbc:mysql://localhost:3306/test?autoReconnect=true&useSSL=false";
      String user = "root";
      String password = "";
	  
      Connection con = DriverManager.getConnection(url, user, password);
	  
      String query = "SELECT * FROM user";
	  
      Statement stm = con.createStatement();
      ResultSet res = stm.executeQuery(query);
	  
      String columns[] = { "ID", "Nom", "Age" };
      String data[][] = new String[8][3];
	  
      int i = 0;
      while (res.next()) {
        int id = res.getInt("ID");
        String nom = res.getString("nom");
        String age = res.getString("age");
        data[i][0] = id + "";
        data[i][1] = nom;
        data[i][2] = age;
        i++;
      }
	  
      DefaultTableModel model = new DefaultTableModel(data, columns);
      JTable table = new JTable(model);
      table.setShowGrid(true);
      table.setShowVerticalLines(true);
      JScrollPane pane = new JScrollPane(table);
      JFrame f = new JFrame("Remplir JTable a partir d'une BDD");
      JPanel panel = new JPanel();
      panel.add(pane);
      f.add(panel);
      f.setSize(500, 250);
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      f.setVisible(true);
	  
    } catch(SQLException e) {
      e.printStackTrace();
    }
  }
}

Sortie:


 
 
Vous pouvez exécuter le code ci-dessus en ligne de commande(CMD):

javac Main.java
java -cp .;lib/mysql-connector-java-5.1.49.jar Main

Télécharger le fichier mysql-connector-java-5.1.49.jar et mettez-le dans le dossier lib de votre projet.
 

 
QCM Java - JDBC

3 réflexions sur “Remplir une JTable a partir d’une Base de données

  • juillet 6, 2021 à 3:40 pm
    Permalien

    bonjour,comment suivre ces cours en video et obtenir un certificat?

    Répondre
  • mai 13, 2022 à 12:07 pm
    Permalien

    je veut afficher ce tableau dans mon jframe et jpanel que je les crier dans une autre Classe ……comment je peut faire ça SLV 🙁

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *