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 :

[Oracle] PreparedStatement


Sujet :

JDBC Java

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut [Oracle] PreparedStatement
    Bonjour à tous,

    J'ai un petit souci avec une BDD Oracle 12c.

    Lors d'une requête en dur, aucun soucis, un résultat m'est bien retourné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NAME FROM CLIENT WHERE MAIL = 'xxx@aaa.com'
    Mais lorsque j'utilise un PreparedStatement, aucun résultat, le ResultSet reste définitivement vide mais aucun exception n'est levée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String sqlRequest = "SELECT NAME FROM CLIENT WHERE MAIL = ?";
    System.out.println(sqlRequest);
    PreparedStatement prepStat = con.prepareStatement(sqlRequest);
    prepStat.setString(1, mail);
    La variable 'mail' est correctement remplie, pas de souci de ce côté.

    Merci d'avance pour votre aide.

  2. #2
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Peux tu montrer un peu plus ton code ?

    Es ce que t'as une instruction genre

    L'effort fait les forts

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    Bien sur, voici la méthode complète :

    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
    	public boolean findByMail(String mail) throws DAException {
     
    		try
    		{
    			Connection con = DBOracleConnection.getInstance();
    			String sqlRequest = "SELECT MAIL FROM MDL_CLIENT WHERE MAIL = ?";
    			PreparedStatement prepStat = con.prepareStatement(sqlRequest);
    			prepStat.setString(1, mail);
    			ResultSet rs = prepStat.executeQuery();
    			if (rs.next())
    			{
    				return true;
    			}
     
    		}
    		catch (SQLException e)
    		{
    			throw new DAException("Erreur: recherche client.");
    		}
     
    		return false;
    	}

  4. #4
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Ton code parait bon ... Maintenant il faudra voir du coté de la variable mail (miniscule, majuscule etc...)
    L'effort fait les forts

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 196
    Points : 242
    Points
    242
    Par défaut
    Dans ton code
    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
     
    	public boolean findByMail(String mail) throws DAException {
     
    		try
    		{
    			Connection con = DBOracleConnection.getInstance();
    			String sqlRequest = "SELECT MAIL FROM MDL_CLIENT WHERE MAIL = ?";
    			PreparedStatement prepStat = con.prepareStatement(sqlRequest);
    			prepStat.setString(1, mail);
    			ResultSet rs = prepStat.executeQuery();
    			if (rs.next())
    			{
    				return true;
    			}
     
    		}
    		catch (SQLException e)
    		{
    			throw new DAException("Erreur: recherche client.");
    		}
     
    		return false;
    	}
    tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAIL FROM MDL_CLIENT...
    or d'après ton premier poste ta table semble s'appeler CLIENT et non pas MDL_CLIENT

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    @didate Oui justement, je ne vois pas du tout d'où vient le problème...

    @Oliv37, ma table s'appelle bien MDL_CLIENT, le premier post était juste pour exposer mon problème. J'ai ajouté le vrai code sur demande de didate.

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 141
    Points : 201
    Points
    201
    Par défaut
    L'utilisation de la commande trim a résolu le problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAIL FROM MDL_CLIENT WHERE trim(MAIL) = ?

  8. #8
    Membre actif
    Avatar de didate
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Guinée

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 90
    Points : 238
    Points
    238
    Par défaut
    Donc il se peut que tu ai des espaces(debut ou fin) dans tes mails en base...
    L'effort fait les forts

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/08/2010, 13h40
  2. Oracle 10 et PreparedStatement
    Par Javix dans le forum JDBC
    Réponses: 1
    Dernier message: 07/11/2007, 14h47
  3. [Oracle]Problème avec PreparedStatement
    Par adrien.nicolet dans le forum JDBC
    Réponses: 3
    Dernier message: 07/03/2007, 14h35
  4. [PreparedStatement] Date Oracle
    Par DeVoN dans le forum JDBC
    Réponses: 10
    Dernier message: 14/02/2006, 12h33
  5. Réponses: 4
    Dernier message: 10/11/2004, 14h58

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