Je suis en train de réaliser une application web (J2EE) et je me pose une
question... J'ai une classe qui propose des méthodes statiques pour exécuter
des requètes sur la base de données. Cette classe propose une méthode
statique "insert" qui prend en paramètre une requête et retourne un entier
contenant l'id du tuple nouvellement inséré (autoincrement).
Cette méthode exécute la requète de manière statique et, comme je suis sous
mysql, exécute ensuite mysql_insert_id() pour récupérer l'id nouvellement
généré.
La question que je me pose est : si deux personnes appellement simultanément
la page jsp qui appelle la méthode "insert", est-je un problème d'intégrité
des données ? Si le visiteur A charge la page, provoque l'insertion d'une
ligne dans la table et que le visiteur B provoque l'insertion d'un ligne
dans la page avant que l'id du visiteur A ait été récupéré j'aurai un gros
problème. Cela risque-t-il d'arriver ?
Le fait que la méthode "insert" soit statique change-t-il quelque chose ?
dans la page avant que l'id du visiteur A ait été récupéré j'aurai un gros problème. Cela risque-t-il d'arriver ?
oui
Le fait que la méthode "insert" soit statique change-t-il quelque chose ?
oui
solution :
synchronized
LR
dans la page avant que l'id du visiteur A ait été récupéré j'aurai un gros
problème. Cela risque-t-il d'arriver ?
oui
Le fait que la méthode "insert" soit statique change-t-il quelque chose ?
oui
solution :
synchronized
Merci, j'ai déjà utilisé synchronized mais je ne suis pas vraiment sur d'en saisir parfaitement l'utilité. Cela crée-t-il un goulot d'étranglement unique par lequel tous les appels à cette méthode doivent passer chacun leur tour ?
Et le fait que la méthode soit statique (et qu'il n'existe pas d'instance de la classe) ne fait-il pas la même chose ?
Merci d'avance Lilian
dans la page avant que l'id du visiteur A ait été récupéré j'aurai un
gros
problème. Cela risque-t-il d'arriver ?
oui
Le fait que la méthode "insert" soit statique change-t-il quelque chose
?
oui
solution :
synchronized
Merci, j'ai déjà utilisé synchronized mais je ne suis pas vraiment sur d'en
saisir parfaitement l'utilité. Cela crée-t-il un goulot d'étranglement
unique par lequel tous les appels à cette méthode doivent passer chacun leur
tour ?
Et le fait que la méthode soit statique (et qu'il n'existe pas d'instance de
la classe) ne fait-il pas la même chose ?
dans la page avant que l'id du visiteur A ait été récupéré j'aurai un gros
problème. Cela risque-t-il d'arriver ?
oui
Le fait que la méthode "insert" soit statique change-t-il quelque chose ?
oui
solution :
synchronized
Merci, j'ai déjà utilisé synchronized mais je ne suis pas vraiment sur d'en saisir parfaitement l'utilité. Cela crée-t-il un goulot d'étranglement unique par lequel tous les appels à cette méthode doivent passer chacun leur tour ?
Et le fait que la méthode soit statique (et qu'il n'existe pas d'instance de la classe) ne fait-il pas la même chose ?