IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

[JDBC][Accès BD et threads]


Sujet :

JDBC Java

  1. #1
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut [JDBC][Accès BD et threads]
    Hello,

    J'utilise des threads, chacun d'eux effectue entre autres ces opérations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - Insertion de données dans une BD MySql
    - Récupération de la dernière ID insérée
    - Traitement quelconque avec l'ID de la dernière donnée insérée
    Donc j'ai un risque d'erreur lors de l'utilisation du programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    - Thread1 insère dans BD
    - Thread2 insère dans BD
    - Thread1 récupère ID de la dernière valeur insérée
    - ...
    Les ID peuvent être faussés de cette manière. Pensez-vous qu'il soit possible de remédier à cela ?

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Si les ID sont auto-générés par la base de données, tu peux les récupérer depuis ton Statement :
    FAQ : Comment récupérer les clefs auto-générées par l'exécution du Statement ?


    Sinon il va falloir que tu synchronizes l'accès à cette méthode afin de n'avoir qu'un traitement à la fois (au moins pour les deux premières étapes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private static final Object staticLock = new Object();
     
    public void method ( /* parametres */ ) {
     
    	synchronized (staticLock) {
    		// Insertion de données dans une BD MySql
     
    		// Récupération de la dernière ID insérée
    	}	
     
    	// Traitement quelconque avec l'ID de la dernière donnée insérée
    }
    a++

  3. #3
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Points : 238
    Points
    238
    Par défaut
    Merci, je saurai me débrouiller avec ça ! 8)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Acces aux données à partir des thread
    Par mastok007 dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 15/01/2014, 22h06
  2. Acces controles c# par des threads
    Par voyageur dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/03/2007, 19h04
  3. [JDBC] Acces refusé a mysql avec applet
    Par romuluslepunk dans le forum Applets
    Réponses: 30
    Dernier message: 19/04/2006, 17h49
  4. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo