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

Spring Java Discussion :

[jdbcTemplate] Utiliser les PreparedStatements


Sujet :

Spring Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 38
    Points
    38
    Par défaut [jdbcTemplate] Utiliser les PreparedStatements
    Bonjour,


    Dans le cadre d'une requète vers une base de donnée, je souhaite remplacer les ' (simple quote) par des \' (backslash simple quote).

    Quelle solution utiliser? Pour le moment, j'utilise maString.replace('\'',' '); qui ne fait que remplacer les ' par du vide. Comment faire pour le replacer par des \' ?

    Ou peut être existe t'il une fonction qui le fait automatiquement?


    Merci beaucoup,

    [Edit]: Le problème à changé, voir plus bas.

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le plus simple serait d'utiliser des PreparedStatement, qui gère très bien la protection des caractères spéciaux...

    Plus d'info dans la FAQ JDBC : Les instructions paramétrées - PreparedStatement

    a++

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 38
    Points
    38
    Par défaut
    Dans ce cas, une question me vient a propos des PreparedStatement.

    Dans le cas d'une requete du style "SELECT * FROM truc where machin IN (1,2,3);", la requete SQL passer en argument au PreparedStatement doit etre du style
    PreparedStatement prep = con.prepareStatement("SELECT * FROM truc where machin IN ?");

    mais comment lui spécifié le tableau (1,2,3)? Avec quel prep.setXXX?


    Merci beaucoup

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Points : 386
    Points
    386
    Par défaut
    par ceci:

    PreparedStatement prep = con.prepareStatement("SELECT * FROM truc where machin IN (?,?,?)");

    prep.setInt(1,x); // attention le numérotage des paramètre commence à 1
    ou
    prep.setString(2,tata); // met automatiquement les '' autour de la chaine

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup.

    J'ai un autre soucis: j'utilise ma base via Spring et le jdbcTemplate.

    Je procède comme cela:

    jdbcTemplate = new jdbcTemplate(getDataSource());
    return jdbcTemplate.query(maRequete,new RowMapperAMoi());

    et j'obtiens une List.


    J'aimerais donc procédé de la meme façon, cependant,
    jdbcTemplate.query() n'accepte pas comme arguments PreparedStatement,RowMapper


    et lorsque je tente un prep.execute(); aucun ne me renvoie de list.

    Y'a t'il un moyen d'obtenir une liste? Désolé, je découvre vraiment les PreparedStatement...


    Merci beaucoup.

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ::Fistons Voir le message
    J'ai un autre soucis: j'utilise ma base via Spring et le jdbcTemplate.
    Alors je déplace le message dans le forum Spring...

    a++

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/05/2006, 11h41
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  3. Comment utiliser les styles XP avec Dev-C++?
    Par abraxas dans le forum Dev-C++
    Réponses: 3
    Dernier message: 05/10/2003, 19h47
  4. Merci d'utiliser les TAG
    Par Cian dans le forum Etudes
    Réponses: 0
    Dernier message: 07/08/2003, 17h46
  5. Utiliser les frames
    Par laury dans le forum Composants VCL
    Réponses: 5
    Dernier message: 10/05/2003, 10h14

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