Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

application web : accès conccurents

2 réponses
Avatar
LR
Salut,

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 ?

Merci d'avance
Lilian

2 réponses

Avatar
Unknown
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

Avatar
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