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

Langage Java Discussion :

Point d'interrogation, manipulation de chaine de caracteres


Sujet :

Langage Java

  1. #1
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut Point d'interrogation, manipulation de chaine de caracteres
    Bonjour,
    J'ai besoin de faire des requetes dynamique: j'aimerai mettre des points d'interrogation à la place des parmetres dynamiques et ensuite de remplacer les points d'interrogation par des variables
    mais je ne me souviens plus du code, quelqu'un pourrais t-il me mettre sur la piste svp
    Merci d'avance bye

  2. #2
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    C'est vraiment des "?" que tu veux ou c'est la méthode String.format que tu cherche ?

  3. #3
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    la meme chose que ce que offre preparedStatement, avec des point d'interrogations

  4. #4
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    La solution la plus simple que je vois (surement pas la plus performante) serait de remplacer les "?" par des "%s" puis d'utiliser la méthode String.format

  5. #5
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Je ne comprend pas ce que tu cherches à faire précisément ? Des requêtes SQL paramétrées ? Pourquoi ne pas utiliser directement les PreparedStatment ??

    a++

  6. #6
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    parce que je creer ma requete dans une methode, puis j'appel une autre methode pour executer ma requete, donc prepared statement n'a rien a faire dans la premiere.

  7. #7
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Je ne comprend toujours pas...

    En gros tu ne veux pas utiliser les PreparedStatments, mais tu veux refaire la même chose

    a++

  8. #8
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,

    Que pensez-vous de ce principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String requete = "SELECT * FROM ? WHERE ? = ?";
    String params[3];
    params[0] = "TABLEA";
    params[1] = "CHAMPB";
    params[2] = "VALEURC";
    for (int i=0 ; i < params.length ; i++) {
      requete = requete.replaceFirst("?", params[i]);
    }
    Je parle du principe ... Ensuite, il faudrait utiliser de préférence des StringBuffer plutôt que des String ...

  9. #9
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    personnellement je trouve ça pas mal. c'est une bonne idée.

  10. #10
    Membre très actif Avatar de goute
    Homme Profil pro
    Développeur éclectique
    Inscrit en
    Novembre 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur éclectique
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 224
    Par défaut
    Je relance le sujet, car je n'ai pas vraiment ma reponse. En faite je voudrai quelques choses qui offre la même chose que prepared statement, mais hors contexte creation de requete. Du style :

    String exemple= "Bonjour %d, ça va ?";
    exemple.setString(1,"Raymond");

  11. #11
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    La réponse de jcdentons te vas pas ?
    Tu as très peu de chose a réécrire pour avoir ce que tu veux.

  12. #12
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Sinon il y a MessageFormat, String.format()...

    a++

  13. #13
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Si on suit le principe que je vous ai suggéré, il suffit de créer une classe :
    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
    public class Requete {
        private String requeteAParametrer;
        private String requeteFormattee;
     
        public Requete(String requete) {
            this.requeteAParametrer = requete;
        }
     
        public void setParametres(Object[] params) {
            this.requeteFormattee = "" + this.requeteAParametrer;
            for (int i = 0; i < params.length ; i++) {
                if (params[i] instanceof String) {
                    this.requeteFormattee = this.requeteFormattee.replaceFirst("?", params[i]);
                }
                if (params[i] instanceof Integer) {
                    this.requeteFormattee = this.requeteFormattee.replaceFirst("%d", params[i]);
                }
                ...
            }
        }
     
        public String getRequeteFormatee() {
            return this.requeteFormattee;
        }
    }
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Requete exemple= new Requete("Bonjour %d, ça va ?");
    Object[] parametres = new Object[2];
    parametres[0] = new Integer(1);
    parametres[1] = "Raymond";
    exemple.setParametres(parametres);
    String requeteALancer = getRequeteFormatee();
    //Puis actions SQL

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

Discussions similaires

  1. Manipulation des chaines de caractere
    Par Darksnakes dans le forum Débuter
    Réponses: 14
    Dernier message: 15/03/2008, 10h31
  2. manipulation des chaines de caractere
    Par elmo93 dans le forum Débuter
    Réponses: 1
    Dernier message: 17/11/2007, 17h53
  3. Manipulation des chaines de caracteres
    Par black-out dans le forum ASP
    Réponses: 3
    Dernier message: 12/08/2007, 15h11
  4. [vba - e] manipulation de chaines de caracteres
    Par alorse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/05/2007, 16h53
  5. Manipuler une chaine de caracteres
    Par virtu67 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/12/2006, 15h31

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