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 :

Insérer un Vector dans une BDD


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 11
    Par défaut Insérer un Vector dans une BDD
    Bonjours ,
    Comment inserer un vector dans database avec la requette insert into
    j'ai essayée ça mais ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      int  id =0;
    				           for(int x = 0; x <vec.size() ; x++){
     
     
    					      	           	requete3.executeUpdate(" insert into Predicat values("+id+",'"+vec.elementAt(x)+"')");
    					      	           }id++;
    et voici ma table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    requete1.executeQuery("CREATE TABLE Predicat(idPr integer PRIMARY KEY NOT NULL,NomV Varchar2(40) NOT NULL)");
    et merci

  2. #2
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Citation Envoyé par houdaùmlk Voir le message
    j'ai essayée ça mais ne fonctionne pas
    C'est à dire ?



    Sinon quelques remarques :
    • Attention à l'indentation qui rend le tout difficilement lisible malgré qu'il n'y ait que 4 lignes de code.
    • Y'a une raison pour utiliser Vector ? C'est plutôt obsolète et on lui privilégiera List/ArrayList.
    • De même qu'il est préférable d'utiliser le for-each pour itérer sur les valeurs plutôt qu'une boucle avec index. Plus simple et plus lisible.
    • Ne pas oublier de libérer les ressources (Statement et Connection), de préférence dans un try-with-ressources.
    • Spécifies toujours le nom des champs de la table dans ton INSERT. Cela permettra à ton code de fonctionner même si la table évolue...
    • Enfin attention aux injections SQL, surtout si tu ne contrôles pas la source de donnée. Il est très fortement préférable de passer par un PreparedStatement...


    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try (PreparedStatement st = requete3.prepareStatement("insert into Predicat(idPr, NomV) values(?, ?)")) {
        int id = 0;
        for (String value : vec) {
            st.setInt(1, id);
            st.setString(2, value);
            st.executeUpdate();
            id++;
        }
    }

    a++

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 11
    Par défaut
    Citation Envoyé par adiGuba Voir le message
    Salut,



    C'est à dire ?



    Sinon quelques remarques :
    • Attention à l'indentation qui rend le tout difficilement lisible malgré qu'il n'y ait que 4 lignes de code.
    • Y'a une raison pour utiliser Vector ? C'est plutôt obsolète et on lui privilégiera List/ArrayList.
    • De même qu'il est préférable d'utiliser le for-each pour itérer sur les valeurs plutôt qu'une boucle avec index. Plus simple et plus lisible.
    • Ne pas oublier de libérer les ressources (Statement et Connection), de préférence dans un try-with-ressources.
    • Spécifies toujours le nom des champs de la table dans ton INSERT. Cela permettra à ton code de fonctionner même si la table évolue...
    • Enfin attention aux injections SQL, surtout si tu ne contrôles pas la source de donnée. Il est très fortement préférable de passer par un PreparedStatement...


    Ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try (PreparedStatement st = requete3.prepareStatement("insert into Predicat(idPr, NomV) values(?, ?)")) {
        int id = 0;
        for (String value : vec) {
            st.setInt(1, id);
            st.setString(2, value);
            st.executeUpdate();
            id++;
        }
    }

    a++
    merci ms j'ai ce probleme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.sql.SQLIntegrityConstraintViolationException: ORA-00001: violation de contrainte unique

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Bah le message est clair : tu ne respectes pas les contraintes d'unicité de ta table.
    L'id doit être unique et apparemment ce n'est pas le cas...


    a++

Discussions similaires

  1. Insérer des Jpeg dans une BDD
    Par KRis dans le forum Bases de données
    Réponses: 8
    Dernier message: 19/03/2009, 20h16
  2. [MySQL] insérer du texte dans une bdd
    Par esther60 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/06/2008, 18h05
  3. Insérer des images dans une BDD Access
    Par polothentik dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 06/05/2008, 10h00
  4. [MySQL] insérer via saisie dans une bdd
    Par luciedoudou dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/01/2007, 11h34
  5. Insérer un vector dans une jTable...
    Par Empty_body dans le forum Composants
    Réponses: 3
    Dernier message: 14/12/2005, 18h35

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