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 :

[JBDC] Verifie qu une table contien une cle


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut [JBDC] Verifie qu une table contien une cle
    bonjour j aimerais savoir s il existe une methode (boolean) ou autre pour verifier si une table contien un element ou non

  2. #2
    NGY
    NGY est déconnecté
    Membre expérimenté
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut
    Non, il faut exécuter une requête.

  3. #3
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    ok mais une autre question

    lorrque je remplie ma table j essaie de rattraper l erreur produit lorsque l element est deja inserer car sa me cree une erreur

    Exception in thread "main" java.sql.SQLException: ORA-00001: unique constraint (
    COMPAORW.SYS_C00865470) violated
    mais quand je fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    catch(SQLException e){system.out.println("donnee existe deja")}
    l erreur persiste

  4. #4
    NGY
    NGY est déconnecté
    Membre expérimenté
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut
    Montre plus de code.
    Mais, bon, à priori, dans ton catch, tu affiche un message, et ... tu continues !
    Donc, tu dois certainement avoir une erreur plus loin.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public static void chargerBaseManege(Connection con, String nomFichier) throws SQLException {
     
      BufferedReader fichierEntree = null;
      try {
        // ouverture du fichier
        fichierEntree = new BufferedReader(new FileReader(nomFichier));
        PreparedStatement ps = con.prepareStatement("INSERT INTO "+ TableManege + " VALUES (?, ?, ?, ?)");
        String ligneCour;  // la ligne courante
     
        while ((ligneCour = fichierEntree.readLine()) != null) {
          String[] tokens = ligneCour.split("\t");
          // séparation des segment(donne separare par tabulation
     
          String premier    =    tokens[0];
          double deuxieme   = Double.parseDouble(tokens[1]);
          double troisieme  = Double.parseDouble(tokens[2]);
          int    quatrieme  = Integer.parseInt(tokens[3]);
     
          try{
            ps.setString(1,premier);
            ps.setDouble(2,deuxieme);
            ps.setDouble(3,troisieme);
            ps.setInt(4,quatrieme);
     
            ps.executeUpdate();
            System.out.println("reussit" );
          }
          catch(SQLException e) {}
        }
        ps.close();
        fichierEntree.close();
      }
      catch (IOException ioe) { }
    }

  6. #6
    NGY
    NGY est déconnecté
    Membre expérimenté
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut
    Avec ce code, tu ne crées que les lignes qui n'existent pas déjà, puisque tu ne fais rien dans le catch qui gère le SQLException.

    As-tu toujours une erreur avec ce code ? Si oui, montre la stack trace.

  7. #7
    Membre éclairé
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    oui merci avec ce code sa marche bien

  8. #8
    NGY
    NGY est déconnecté
    Membre expérimenté
    Inscrit en
    Août 2002
    Messages
    137
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 137
    Par défaut
    Attention quand même: avec ce code ça marche ... si tout se passe bien.
    Mais si un autre problème survient, tu ne pourras pas le savoir ! Et donc tu croiras que tout a marché alors qu'en fait ton programme n'a rien fait.
    Tu devrais :
    • Soit vérifier que l'exception catchée est bien due à un unique constraint ;
      Soit faire un select count avant et n'insérer que si la requête retourne 0 (plus propre à mon avis).

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

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 10h17
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  4. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  5. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50

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