15
juillet
2013
MessageFormat mettre les paramètres entre quotes
juillet
2013
Un article de aityahia
Pas de commentaires
Même si l’interface PreparedStatement existe pour des besoins particuliers vous pouvez être amené à utiliser la classe MessageFormat pour construire une requête SQL , si par exemple vous voulez mettre entre quotes les paramètres de la chaine résultante avec le code ci-dessous qui semble cohérent
MessageFormat str = new MessageFormat("SELECT * FROM mytable WHERE mydate BETWEEN ‘{0}’ AND ‘{1}’") ;
Object[] args = {"2013-07-01","2013-07-31"};
String query = str.format(args) ;
Object[] args = {"2013-07-01","2013-07-31"};
String query = str.format(args) ;
Vous allez remarquer que cela ne fonctionne pas et que la méthode ne reconnait pas les paramètres en tant que tel, si vous affichez la chaine avec System.out.println vous aurez comme résultat la chaine suivante :
Hors que ce n’est pas le résultat souhaité, pour résoudre le problème,il vous suffit de doubler les quotes comme ceci :
MessageFormat str = new MessageFormat("SELECT * FROM mytable WHERE mydate BETWEEN ''{0}'' AND ''{1}'' ") ;
Object[] args = {"2013-07-01","2013-07-31"};
String query = str.format(args) ;
Object[] args = {"2013-07-01","2013-07-31"};
String query = str.format(args) ;