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.
bonjour,comment suivre ces cours en video et obtenir un certificat?
je veut afficher ce tableau dans mon jframe et jpanel que je les crier dans une autre Classe ……comment je peut faire ça SLV 🙁
Bonjour Amna,
Tu peux poser ton question sur la communauté https://forums.waytolearnx.com/ et ajouter plus de détail pour avoir de l’aide.