Hello,

J'ai une application qui intéragit avec une database via une classe gérant la connexion et l'execution des requetes. En gros, j'execute toutes les requetes via cette classe, qui, lors de sa construction, crée une instance de Connexion stockée en tant que variable d'instance telle que:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public class DBManager {
    private Connexion conn ;
    (...)
    public DBManager(String ip, String name, String user, String passwd) {
             this.conn = DriverManager.getConnection("jdbc:mysql://"+ip
                                          +"/"+name+"?user="+user
                                          +"&password="+passwd
                                          +"&relaxAutoCommit=true");
    }
    (...)
}
Ensuite, pour executer un SELECT par exemple, ca se fait via la fonction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
public ResultSet selectQuery(String query) throws SQLException {
    stmt = this.conn.createStatement();
    ResultSet rs = stmt.executeQuery(query);
 
    return rs;
}
Après avoir lancé mon appli (et donc déjà réalisé un certain nombre de requetes avec succès), celle ci se bloque lors de l'execution d'une nouvelle requete via. la méthode présentée ici. Le déroulement s'arrete à executeQuery.. Plus rien ensuite.

La query est du type "insert into table(..) values(...) ; SELECT @@IDENTITY AS 'new_id' ", et s'execute corrèctement lorsque je la lance dirèctement dans mysql...

Donc voilà, ca ressemble à un interblocage, peut être due à la manière dont sont gérés l'execution des requetes, les connexions, les statements etc... Notamment, je me demandais si un seul objet Connexion est suffisant, ou si il ne fallait pas en créer un à chaque requete (comme j'ai déjà pu voir dans certains autres programmes...)

Bref, avez vous une idée?
Merci d'avance...