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 :

Récuperer en java le résultat d'une requete SQL


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Par défaut Récuperer en java le résultat d'une requete SQL
    Bonjour,

    Je possede une table formée de 2 colonnes: "Login" et "mot de passe". Alors dans mon programme java je vais exécuter la requête SQL suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String req="SELECT * FROM user WHERE ("login ="+log+"and password ="+pw+");";
    rs = stmt.executeQuery(req);
    Comment je peux déterminer qu'il y a une valeur ou pas dans ma table (c'est a dire est ce qu'il y a une fonction en java qui permet de retourner un entier par exemple pour indiquer si cette "login et password" existe ou pas dans ma table?

    J'espère que c'est claire et j'espère que vous pouvez m'aider.
    Merci d'avance.

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    boolean exist = false;
    while(rs.next){
        exist = true;
    }
    Mais il y a plus simple que ça je pense

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Par défaut
    Mais il y a plus simple que ça je pense
    Oui c'est ce que je cherche car j'ai pensé en ce que vous avez me dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    boolean exist = false;
    while(rs.next){
        exist = true;
    }
    Merci.

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    boolean exist = true;
    if(rs.isAfterLast()){
        exist = false;
    }
    Mais ça revient un peu près au même au niveau du nombre de lignes

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    La solution la plus simple est (si tu n'as pas besoin des données)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PreparedStatement pstmt = connection.prepareStatement("select login from user where login=? and password=?");
    pstmt.setString(1, unLogin);
    pstmt.setString(2, unPassword);
    ResultSet rs = pstmt.executeQuery();
    boolean exist = rs.next();
    J'ai mis la solution complète avec un PreparedStatement parce qu'il faut éviter au maximum les requêtes du type de celle que tu montres (surtout pour une authentification !), il y a un gros risque d'injection .

    Je ne vois pas l'intérêt de faire une boucle while dans ce cas puisqu'il serait très surprenant d'avoir plusieurs utilisateurs avec le même login (bug fonctionnel)

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre confirmé
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Par défaut
    Voila j'ai essayer d'utiliser votre code, mais j'ai pas obtenu de résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String req="SELECT * FROM user WHERE ( login ="+log+"and password ="+pw+");";
    PreparedStatement pstmt = connection.prepareStatement(req);
    pstmt.setString(1, log);
    pstmt.setString(2, pw);
    ResultSet rs = pstmt.executeQuery();
    boolean exist = rs.next();return exist;
    S'il vous plait expliquez mieux le code que vous avez mis.

    Merci.

Discussions similaires

  1. Recharger une JTable avec le résultat d'une requete sql
    Par Premium dans le forum Composants
    Réponses: 2
    Dernier message: 06/06/2007, 15h19
  2. [SQL] Résultat d'une requete SQL en 2 colonnes
    Par apt dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 01/02/2007, 02h24
  3. Réponses: 2
    Dernier message: 03/09/2006, 11h02
  4. Résultat d'une requete SQL vers Excel
    Par climz dans le forum Access
    Réponses: 6
    Dernier message: 09/05/2006, 15h44
  5. résultat d'une requete SQL dans un tableau en JSP
    Par Paradoxys dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/04/2005, 16h17

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