JTable et les données de sql server
salem
j'ai un grand probleme et je ne sais pas comment faire aidez moi SVP
bon j'ai une BDD sous sql server et je dois récupérer les données d'une requete sql dans une interface graphique java ,pour la connexion c'est bon elle marche trés bien et je peux afficher les données dans le console maintenant je dois les représenter dans un JTable mais j'ai pas bien compris comments faire
voici le code de la fenetre qui contien le JTable:
Code:
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
| public class jtable_cout extends JFrame {
//connexion
Connection con=null;
Calendar cal=Calendar.getInstance();
int i,j;String Stack[];
private JButton bouton_c_m;
private JTable jTable1;
public jtable_cout() throws ClassNotFoundException{super();
build();
}
private void build() throws ClassNotFoundException{
setTitle("A"); //On donne un titre à l'application
setSize(850,600); //On donne une taille à notre fenêtre
setResizable(true); //On interdit la redimensionnement de la fenêtre
setDefaultCloseOperation(EXIT_ON_CLOSE); //On dit à l'application de se fermer lors du clic sur la croix
setContentPane(buildContentPane());
getContentPane().setBackground(Color.white);
}
private JPanel buildContentPane() throws ClassNotFoundException{
JPanel panel=new JPanel();
//jtable
// DefaultTableModel model = new DefaultTableModel();
MonModele mm = new MonModele(MonModele.donnees,MonModele.colName);
jTable1 = new JTable(mm);
jTable1.setPreferredSize(new Dimension(900,300));
JScrollPane panel1 = new JScrollPane(jTable1);
panel.add(jTable1);
panel.add(panel1);
return panel;}
public static void main(String arg[]) throws ClassNotFoundException
{jtable_cout fenetre=new jtable_cout();
fenetre.setVisible(true);//On la rend visible
}
} |
et maintenant le code du modele et je pense que ici j'ai fais n'import quoi!!!!!!!
Code:
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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| public class MonModele extends AbstractTableModel {
public JTable jTable1 ;
Connection con=null;
Calendar cal=Calendar.getInstance();
int i=-1,j,a=6,b=10;
static Object donnees[][];
static String titres[]={"numero de voiture", "désignation d'opération","date d'entrée","date de sortie","cout_maintenance","retard_maintenance"};
public MonModele(Object donnees[][], String titres[]) {
this.donnees = donnees;
this.titres = titres;
}
public Object getValueAt(int parm1, int parm2) {
//connexion
try {
//1er:appel driver
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//charger le pilote
//2eme:connexion
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;"+"DatabaseName=datawarehouse_nadia;user=sa");
//requet
Statement instruction = con.createStatement();
ResultSet resultat = instruction.executeQuery("execute maintenance_voiture");
//traitement de résultat
ResultSetMetaData rsmd = resultat.getMetaData();
colCount = rsmd.getColumnCount();
parm1=colCount;
resultat.last();
rowCount = resultat.getRow();
parm2=rowCount;
resultat.beforeFirst();
}
while (resultat.next()) {i=i+1;
cal.setTime(resultat.getDate("date_sortie"));
if(cal.get(Calendar.YEAR)==1988)
{
if (cal.get(Calendar.MONTH)+1==3)
{ System.out.println("ok");
if(resultat.getString("numero_voiture")==null){donnees[i][0]="non spécifier";}
else{donnees[i][0]=resultat.getString("numero_voiture");}
if(resultat.getString("désignation_opération")==null){donnees[i][1]="non spécifier";}
else{donnees[i][1]=resultat.getString("designation_opération");}
if(resultat.getString("date_entrée")==null){donnees[i][2]="non spécifier";}
else{donnees[i][2]=resultat.getString("date_entrée");}
if(resultat.getString("date_sortie")==null){donnees[i][3]="non spécifier";}
else{donnees[i][3]=resultat.getString("date_sortie");}
if(resultat.getString("cout_maintenance")==null){donnees[i][4]="non calculer";}
else{donnees[i][4]=resultat.getString("cout_maintenance");}
if(resultat.getString("retard_maintenance")==null){donnees[i][5]="pas de retard";}
else{donnees[i][5]=resultat.getString("retard_maintenance");}
System.out.println(donnees[1][1]);
}
}
}
//dernier etape:fermeture
con.close();
} catch(SQLException ex){
JOptionPane.showMessageDialog(null, "Ca marche pas");
ex.printStackTrace();
}
//fin connexion
return donnees[parm1][parm2];
}
public int getColumnCount() {
return colCount;
}
public int getRowCount() {
//return donnees.length;
return rowCount;
}
public String getColumnName(int col){
return titres[col];
}} |
au début il m'a donné des exceptions c'été pour la valeur null c'est pour ca j'ai testé les valeurs mais maintenant il ne me rien ni données ni exceptions
merci bien de m'aider
salem
Nadia.