Partage
  • Partager sur Facebook
  • Partager sur Twitter

requête sql avec java

select à l'aide d'une list

Sujet résolu
    22 février 2021 à 0:09:23

    Bonsoir, je voudrai faire une requête sql sur mon projet java.

    je veux récupérer les infos de ma table en utilisant une liste en java mais je ne sais pas comment m'y prendre.

    la requête :

    "SELECT * from user where pseudoUs in "+maList

    l'erreur :

    SQLException: Erreur de syntaxe près de '[Mathis, Yoann]' à la ligne 1

    '[Mathis, Yoann]' étant le contenue de ma list.

    Merci pour votre aide.

    -
    Edité par ThisThis 22 février 2021 à 0:10:02

    • Partager sur Facebook
    • Partager sur Twitter
      22 février 2021 à 8:00:44

      Salut,

      tu as un soucis de syntaxe avec l'opérateur IN. Celui-ci fonctionne ainsi:

      SELECT nom_colonne
      FROM table
      WHERE nom_colonne IN ( valeur1, valeur2, valeur3, ... )

      Tu dois adapter ton code pour avoir 

      "SELECT * from user where pseudoUs in ('Mathis','Yoann')"
      

      -
      Edité par rybla 22 février 2021 à 8:00:59

      • Partager sur Facebook
      • Partager sur Twitter
        22 février 2021 à 15:31:39

        Je ne peux pas entrer ma list en dur comme ça parce qu'elle ne contient pas toujours le même nombre de données et pas les même non plus.

        j'ai réussi à contourner mon problème avec 2 boucles for. Je mets mon code pour ceux qui en aurait besoin et j'attends jusqu'à ce soir avant de mettre le sujet en résolu pour voir si quelqu'un a mieux que moi.

        le code :

        StringBuilder para = new StringBuilder();
        for (int i = 0; i < malist.size(); i++){
            if (i > 0)
                para.append(", ");
            para.append("?");
        }
        
        //Select SQL :
        String req = "SELECT idUs, pseudoUs from user where pseudoUs in ("+para+")";
        PreparedStatement pstmt = general.conn.prepareStatement(req);
        for (int j = 0; j < malist.size(); j++){
            pstmt.setString(j+1, malist.get(j));
        }
        
        ResultSet rs = pstmt.executeQuery();
        


        merci :)

        -
        Edité par ThisThis 22 février 2021 à 19:02:31

        • Partager sur Facebook
        • Partager sur Twitter
          22 février 2021 à 18:10:10

          Je ne voulais pas te donner la solution et te laisser chercher un peu.

          Tu peux passer le sujet en résolu maintenant ;).

          • Partager sur Facebook
          • Partager sur Twitter

          requête sql avec java

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown