Bonjour,

j'ai un Jtable qui contient 5 colonnes nom de l'avocat ,cabinet, adresse GSM et tél, lorsque je clique sur la bouton ajouter, les données saisies doivent être insérer dans la base de données, le problème c'est que dans la base la table avocat contient plus que les champs de la jtable le champs
IdAvocat
, ce dernier est un clé primaire qui est auto_increment donc je ne doit pas la saisir dans Jtable.

le code :
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
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
119
120
121
122
123
124
125
126
127
128
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import javax.swing.JOptionPane;
 
 
public class Avocat extends javax.swing.JInternalFrame {
 
    public Avocat() {
        initComponents();
        this.ref();
       }
 
    Avocat(String string) {
        super(string);
        this.initComponents();
       }
 @SuppressWarnings("unchecked")
//Generated code , sous netbens private void ajouterActionPerformed(java.awt.event.ActionEvent evt) {                                         
             if(JOptionPane.showConfirmDialog(null,"VOULEZ-VOUS VRAIMENT AJOUTER CET Avocat?",
		  "CONFIRMATION",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){
 
          int a=jTable2.getSelectedRow();
          System.out.println(" la ligne  "+a);
 
         Object Av=jTable2.getModel().getValueAt(a,0);
         System.out.println("la valeur de '"+a+" et 0' ="+Av);
 
         Object Cab=jTable2.getModel().getValueAt(a,1);
         System.out.println("la valeur de '"+a+" et 1' ="+Cab);
 
         Object Adr=jTable2.getModel().getValueAt(a,2);
         System.out.println("la valeur de '"+a+" et 2' ="+Adr);
 
         Object GS=jTable2.getModel().getValueAt(a,3);
         System.out.println("la valeur de '"+a+" et 3' ="+GS);
 
         Object Tl=jTable2.getModel().getValueAt(a,4);
         System.out.println("la valeur de '"+a+" et 4' ="+Tl);
      try{
 
      Class.forName("com.mysql.jdbc.Driver");
      Connection con=null;
      con =       (Connection) DriverManager.getConnection( "jdbc:mysql://localhost:3306/mabase?user=root&password=");
      Statement st=(Statement) con.createStatement();
 
       st.executeUpdate("insert into Avocat values('"+Av+"','"+Cab+"','"+Adr+"','"+GS+"','"+Tl+"')");
 
       }catch(Exception e)
           {System.out.println(e.toString());
             }
    }
 
    Object[][] bj=new Object[get_row_log()][5];
    jTable2.setModel(new javax.swing.table.DefaultTableModel(bj,
    new String [] {"Avocat","Cabinet", "Adresse","GSM", "Tél"}
    ));
    jTable2.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(java.awt.event.MouseEvent evt) {   
   }
   });
 
    }                                        
 
    // Variables declaration - do not modify
    private javax.swing.JButton ajouter;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTable jTable2;
    // End of variables declaration
 
    public int get_row_log()
 
    {int i=0;
       try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/mabase?user=root&password=");
            Statement st = (Statement) con.createStatement();
            ResultSet rs = st.executeQuery("SELECT * from Avocat");
 
            while(rs.next())
         i++;
     return i;
     }
        catch (Exception e) {
            System.out.println(e.toString());
            return i;
        }
 
}
     public void ref (){
 
    try {
        Class.forName("com.mysql.jdbc.Driver");
        String urlData=new String("jdbc:mysql://localhost:3306/mabase?user=root&password=");
            java.sql.Connection conn = DriverManager.getConnection(urlData);
            Statement st = (Statement) conn.createStatement();
            String query = "select * from Avocat";
 
            st =        (Statement) conn.createStatement();
           ResultSet rs = st.executeQuery(query);
 
           int m=0;
           while(rs.next()){
 
 
            jTable2.setValueAt(rs.getString("Nom_Prénom") , m, 0);
            jTable2.setValueAt(rs.getString("Cabinet") , m, 1);
            jTable2.setValueAt(rs.getString("Adresse") , m, 2);
            jTable2.setValueAt(rs.getString("GSM") , m, 3);
            jTable2.setValueAt(rs.getString("Tél") , m, 4);
 
            m++;
            }
 
              st.close();
              conn.close();
            }
        catch (Exception e) {
        System.out.println(e.toString());
        e.printStackTrace();
        }
 
        }
 
}
le résultat après l'exécution :

run:
la ligne 2
la valeur de '2 et 0' =Nabil
la valeur de '2 et 1' =XXXX
la valeur de '2 et 2' =France
la valeur de '2 et 3' =123456
la valeur de '2 et 4' =null
java.sql.SQLException: Column count doesn't match value count at row 1

un coup de main et Merci d'avance