Incrémentation d'un éléments à insérer en base
Bonjour,
Je dispose d'un objet User. Cet objet contiens deux méthodes que je souhaite utiliser ensemble.
La première est getNbUser, elle permet de recupérer le nombre d'éléments associés en base.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public static int getNbUser(){
Connection cnx = Connexion.getCnx();
String rqt= "select count (*) from user";
int nbUser = 0;
try {
Statement stmt = cnx.createStatement();
ResultSet rs= stmt.executeQuery(rqt);
// execute(rqt);
while(rs.next()) {
nbUser = rs.getInt(1);
System.out.print("NbUser = "+ nbUser);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
Connexion.closeCnx(cnx);
}
return nbUser;
} |
La seconde est insertUser, elle permet d'insérer un utlisateur en base.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public void insertUser(){
Connection c = Connexion.getCnx();
try {
Statement stmt =c.createStatement();
//final int new_id = getNbUser()+1;
stmt.execute("INSERT INTO USER (id,login, password, droit) VALUES ("
+this.getId() /*User.getNbUser()*/ +",'"
+this.getLogin() +"','"
+this.getPassword() +"','"
+this.getDroit() +"')");
} catch (SQLException e) {
e.printStackTrace();
}finally{
Connexion.closeCnx(c);
}
} |
Utiliser indépendemment, les deux sont fonctionnelles, néanmoins, lorsque je souhaite insérer un User dans la table correspondante en incrémentant l'id (champs INT(8) ), le fait d'utiliser les deux méthodes en les croisant me poses problèmes.
Ci dessous l'erreur générée :
Citation:
com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.checkClosed(Connection.java:1931)
at com.mysql.jdbc.Connection.createStatement(Connection.java:3093)
at com.mysql.jdbc.Connection.createStatement(Connection.java:3075)
at bean.User.insertUser(User.java:75)
at main.Main.main(Main.java:21)
Une solution
Merci