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 :

JDBC comparer String avec resultat d'une requete SQL


Sujet :

JDBC Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Par défaut JDBC comparer String avec resultat d'une requete SQL
    Bonsoir,

    Je voudrais comparer une chaîne de caractères avec les résultats d'une requête et renvoyer vrai ou faux si la chaîne de caractères est égale à un résultat de la requête.
    Ainsi, je poste ce sujet parce que je ne sais pas comment faire cela malgré des recherches.
    Voici le début de ma fonction.
    Merci pour votre future aide.


    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
     
     
    	public boolean rechercheSportif(String recherche)
    	{
    		boolean sportifExiste = false;
    		try{    
    			stmt = (Statement) Connexion().createStatement();  
    			String sql = "SELECT nom " +
    		                 "FROM sportif";
    			//System.out.println(sql);
    		    ResultSet result = stmt.executeQuery(sql);
     
     
    		   }
    		catch(SQLException se)
    		{
    		      //Handle errors for JDBC
    		      se.printStackTrace();
    		}
    		catch(Exception e)
    		{
    			//Handle errors for Class.forName
    			e.printStackTrace();
    		}
    	    return sportifExiste;
    	}

  2. #2
    Membre chevronné Avatar de freddou17
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2013
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2013
    Messages : 341
    Par défaut
    Slt,
    Il faut que tu formates le retour de ta requête, par exemple que tu concatènes des colonnes (col1 + spéarateur + col2 + séparateur + col3...)
    Dans le cas de ta requête tu ne pourras tester que le nom.
    Que se passe t-il si tu as plusieurs enregistrements?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    try{    
       stmt = (Statement) Connexion().createStatement();  
       String sql = "SELECT nom FROM sportif";
      //System.out.println(sql);
        ResultSet result = stmt.executeQuery(sql);
        String nom = "";
        while(resultat.next()){
            nom += result.getString("nom");
            nom += ";"; //en faisant ça tu va récupérer toutes les lignes correspondant à ta requête
        } catch(SQLException se){
        }

    ++

  3. #3
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    On retrouve trop souvent ce genre de code. Tu vas recuperer l'ensemble de ta table pour tester la présence d'un seul enregistrement par code. Ca veut dire que tu vas potentiellement recuperer 1000000 lignes pour verifier la présence d'un enregistrement, ce qui rendra ton appli hyper lente des qu'elle aura un peu de charge. Et crois moi, si toutes tes requetes sont faites comme ca, pas besoin d'atteindre les milliers de lignes pour avoir une appli inutilisable. Des que tu vas arreter d'utiliser la base de données de test avec 5 enregistrements, ca deviendra inutilisable.

    Bref, ce qu'il faut, c'est demander à ta base de données de faire la vérification pour toi. Il vaut mieux faire
    SELECT * FROM SPORTIF WHERE NOM = 'Nadal'
    que de tout recuperer et verifier la presence d'un enrregistrement. Ca fera moins de travail pour toi (puisque tu n'as plus qu'à verifier s'il y a 1 ou plusieurs resultats et faire ce qu'il faut).

    Par ailleurs, comme je soupconne que le nom en question vienne d'une entrée utilisateur (par exemple un JTextfield), il faut utiliser un PreparedStatement plutot qu'un Statement pour eviter les problemes d'injection SQL.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Par défaut
    Merci pour votre aide.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2014
    Messages : 102
    Par défaut
    Et comment vérifier si le résultat de la requête et bonne?
    Et est-ce que je pourrais avoir plus d'information sur PreparedStatement svp
    Merci

Discussions similaires

  1. [MySQL] Affichage du resultat d'une requete SQL avec PHP
    Par tabouet dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 24/09/2009, 14h03
  2. Resultat d'une requete SQL avec un recordSet
    Par Mimisio dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/07/2007, 09h38
  3. Réponses: 6
    Dernier message: 31/07/2006, 10h18
  4. Réponses: 3
    Dernier message: 02/05/2006, 14h21
  5. [Oracle / Sql] clause where avec resultat d'une requete
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 2
    Dernier message: 31/01/2006, 09h37

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