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 :

Plusieurs requêtes INSERT en même temps


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut Plusieurs requêtes INSERT en même temps
    Salut,

    J'ai une erreur quand je souhaite exécuter plusieurs requêtes simultanément avec la fonction statement.executeUpdate(query) où query est du type "INSERT INTO Table1(...) VALUES(...);INSERT INTO Table2(...) VALUES(...);INSERT INTO Table3(...) VALUES(...)".

    Hors cette même requête fonctionne très bien par exemple dans phpmyadmin.

    D'où ma question, peut-on exécuter plusieurs requêtes en même temps ?
    Si oui comment ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Tout simplement parceque phpMyAdmin parse ta requête en plusieurs morceaux...

    Il te va donc falloir faire un boucle exécutant autant de tours qu'il y a d'insert et si tu veux optimiser ça tu peux passer par un batch si ta Base le support

    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
     
    Connexion connexion = DriverManager....
    Statement s = null;
    try{
      s = connexion.createStatement();
      s.addBatch("INSERT INTO Table1(...) VALUES(...)");
      s.addBatch("INSERT INTO Table2(...) VALUES(...)");
      s.addBatch("INSERT INTO Table3(...) VALUES(...)");
      s.addBatch("INSERT INTO Table4(...) VALUES(...)");
      s.executeBatch()
    } catch (SQLException e) {
      if (s!=null) {
        s.close();
      }
    } finally {
      if (connexion != null) {
        connexion.close();
      }
    }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 78
    Par défaut
    Merci pour ta réponse.
    Je croyais que c'était possible en SQL de séparer les requêtes par des ";" et je n'aurais jamais cru que c'est parsé par les outils tels que phpmyadmin...

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    tu peux aussi (suivant ta bdd) utiliser des insertion de "masse"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT ALL
      INTO table VALUES(...),
      INTO table VALUES(...);
    SELECT 1 FROM dual;
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table VALUES ( col1,col2,col3,col1,col2,col3 .... )
    ou avec un select ...

    mais bon faut voir. si c'est mySql que tu utilises, je ne sais pas quelles sont les méthodes autoirisées.

    Mais bon le batch (comme dit Sinok) dans ton cas est surement la meilleure solution. Tu peux également le coupler avec un preparedStatement je pense ...

Discussions similaires

  1. [AJAX] Plusieurs requêtes XHR en même temps
    Par heavenvibes dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/10/2008, 02h02
  2. Executer un code en java sur plusieurs fichiers xml en même temps
    Par med_ellouze dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/08/2007, 17h33
  3. Réponses: 3
    Dernier message: 16/01/2007, 12h13
  4. Réponses: 7
    Dernier message: 05/06/2006, 14h44
  5. [C#] Faire un INSERT en même temps dans 2 bases differentes
    Par Pingva dans le forum Accès aux données
    Réponses: 8
    Dernier message: 09/09/2004, 13h07

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