Bonjour à tous,
J'ai un problème avec ma JTable j'arrive pas à mettre le résultat de ma requête à l'intérieur. Il me renvoie un NullPointerException, mais pourtant ma requête renvoie bien un résultat.
Voici le code de ma JTable :
Et voici le code de ma connexion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 package vue; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import modele.Conclient; public class Vue_TableClient extends JPanel{ private String[] NomColonne; public String[] getNomColonne() { return NomColonne; } public void setNomColonne(String[] nomColonne) { this.NomColonne = nomColonne; } private Object[] [] data; public Object[][] getData() { return data; } public void setData(Object[][] data) { this.data = data; } public Vue_TableClient(){ Conclient con = new Conclient(); this.setLayout(new BorderLayout()); //Valeur temporaire pour éviter l'erreur NullPointerException String [] nomcol={"Code","Nom","Localite"}; setNomColonne(nomcol); //String [][]donne = ; //setData(donne); JTable TableClient = new JTable( getData(), getNomColonne()); //JScrollPane TableClientScroll = new JScrollPane(TableClient); //this.add(TableClientScroll); this.add(new JScrollPane(TableClient)); } }
Quand je teste ma méthode Conclient .affiche(); il m'affiche le résultat de la requête dans la console, donc côté requête c'est tip-top.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 package modele; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import vue.Vue_TableClient; public class Conclient { private Connection conn = null; public Conclient(){ //Connection conn = null; //Statement statement = null; //ResultSet resultSet = null; String classDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String driverJdbc = ""; String serverAdress ="LHIASCZKTER\\SQLEXPRESS"; String bdd ="sqlclient"; String user ="root"; String pass=""; try { Class.forName(classDriver); // Création de la connexion vers le serveur de bd conn = DriverManager.getConnection( "jdbc:sqlserver://" + serverAdress + ";database=" + bdd + ";user=" + user + ";password=" + pass ); }catch (ClassNotFoundException e) { System.out .println("Le fichier CLASS java du Driver SQL n'a pas été trouvé"); System.out.println(e.getMessage()); }catch (SQLException e) { System.out .println("Probleme lors de la création d'une connexion"); System.out.println(e.getMessage()); } System.out.println("La connexion à été effectué"); } public void affiche(){ String query = "SELECT * FROM client;"; ResultSet results; try { Statement stmt = conn.createStatement(); results = stmt.executeQuery(query); while(results.next()){ String code_client = results.getString("code_client"); String nom = results.getString("nom"); String localite = results.getString("localite"); //Ici j'aimerais, je dis bien J'AIMERAIS mettre le résultat //de la requête dans la table :-) String[][]donne ={{code_client,nom,localite}}; Vue_TableClient vtl = new Vue_TableClient(); vtl.setData(donne); //Ici j'affiche le résultat de la requête dans la console System.out.println(code_client + " " + nom + " " +localite); } } catch(Exception e){ System.out.println("Une erreur subsiste dans la requête(nom de la colonne de la table)"); } } }
C'est vraiment côté JTable que je comprends pas ce qu'il se passe. Pourtant j'y croyais puisque c'est presque le même chose que les exemples fournis par java
Une petite chose encore savez-vous aussi pourquoi quand je teste ma méthode Conclient .affiche(); via la console il me renvoie :
J'ai l'impression que j'aurais autant de connexion que d'enregistrement c'est normal ça ?La connexion à été effectué
La connexion à été effectué
nfa Martin Los Avanchez
La connexion à été effectué
nfp Von cock Saint-tropez
Merci à tous pour votre aide.
Partager