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 : 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
 
	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 : 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
 
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 :

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