Java : retourner resultat liste dans requête

Résolu
Bonjour bonjour

J'ai créer une liste qui affiche les données d'un champs d'une table, aussi j'aimerais récupérer le champs selectionner et inserer le resultat dans une autre requête mais je ne sais pas quoi mettre à la place des ?????????
Voici mon code, je suis un peut perdu avec ce html et ce java.... :s

 Statement requete = con.createStatement(); 
       		ResultSet resultat = requete.executeQuery("select distinct t.sDisplayName from DeviceType t, Device d where t.nDeviceTypeID=d.nDeviceTypeID and (d.nBestStateID=6 or d.nBestStateID=5 or d.nBestStateID=10);"); 
       		ResultSet affichage= requete.executeQuery("select * from Device where sDisplayName =??????")
		
			principal.outstr("<center><h1>Liste des equipements actifs :</h1></center>",false);
		
			principal.outstr("<center>Veuillez choisir une categorie d'equipement : <FORM><SELECT name=\"nom\" size=\"1\">",false);
			while(resultat.next()) {
	
				principal.outstr("<OPTION>"+resultat.getString(1),false);
				
			
			}
			
			principal.outstr("</SELECT> </FORM>",true);
			principal.outstr("</center>",true);
		

3 réponses

  1. Bonjour batbat52,

    Avec JDBC, les saisies utilisateurs sont insérables dans des requêtes paramétrées qui s'appellent PreparedStatement
    Pour plus d'information : https://java.developpez.com/faq/jdbc?page=Les-instructions-parametrees-moins-PreparedStatement#defPreparedStatement

    Dans ton cas, il faudra récupérer le paramètre (la sélection utilisateur sur ton <select />) avec HTTPServletRequest#getParameter et appeler un PreparedStatement#setString avec la valeur que tu auras récupéré
    1. je sais que j'en demande beaucoup mais si tu as le temps pourrais tu me faire un petit exemple stp
      Merci bcp deja pr ces info ;)
      1. De tête je dirais

        Object selectedDisplayedNames = request.getParameter("nameDeTonSelect");
        // Les select sont envoyés comme des tableaux de String si je me souviens bien...
        if (selectedDisplayedNames instanceof String[] && ((String[])selectedDisplayedNames).length > 0) {
            // On prend le premier élément sélectionné de la liste
            String selectedDisplayedName = ((String[])selectedDisplayedNames)[0];
            preparedStatmntProjectionEquipements.setString(tonIndiceDeParametre, selectedDisplayedName);
        }
        

        Où tonIndiceDeParametre est l'indice base 1 de ton ? dans le WHERE de ta requête SELECT,
        et preparedStatmntProjectionEquipements ta requête qui retourne les équipements

        Je te laisse chercher pour la suite, c'est bien d'être mis sur la voie mais on apprend pas en buvant le code des autres

        Attention : code non vérifié
        1. oui oui merci bcp :)
        2. Résolu ?