Remplacer le caractère ' dans une String - Java - Programmation
Marsh Posté le 21-01-2005 à 17:12:01
Code :
|
Marsh Posté le 21-06-2005 à 10:03:49
J'ai le même problème pour échapper le Quotes lors de l'insertion en base de données.
Le problème est que repace prend un caractère et j'ai besoin de doubler le quotes pour que Oracle le prenne.
Marsh Posté le 21-06-2005 à 10:21:52
ksavieras a écrit : Salut |
c'est normal, les chaines de caracteres sont immuable
s=s.replace('\'','%'); aurait marché
Marsh Posté le 21-06-2005 à 10:22:43
compuman101 a écrit : J'ai le même problème pour échapper le Quotes lors de l'insertion en base de données. |
utilise des PreparedStatement plutot, et laise ton Driver faire le boulot à ta place ! ce n'est pas à toi d'échapper ces caractères !
Marsh Posté le 21-06-2005 à 10:43:28
souk a écrit : utilise des PreparedStatement plutot, et laise ton Driver faire le boulot à ta place ! ce n'est pas à toi d'échapper ces caractères ! |
OK je vais voir
Merci
Marsh Posté le 21-06-2005 à 10:57:00
J'ai ca :
dbStatement = dbConnection.createStatement();
dbStatement.setEscapeProcessing(true);
dbResultSet = dbStatement.executeQuery(dbQuery);
La dbQuery est une chaîne de type String dans laquelle je stocke la requête à exécuter.
Le EscapeProcessing n'a pas l'air d'être pris en compte et je me demande comment il peut savoir quel tel Quotes est un séparateur de contenu ( Exemple = WHERE valeur = 'chaine' ) ou un caractère à échapper (Problème lorsque chaine est de la forme : "J'habite Lyon" )
Tu vois mon problème ? :$
Marsh Posté le 21-06-2005 à 11:22:03
il faut utiliser un PreparedStatement je t'ai dit
et toi tu fais un Statement ...
Code :
|
voila
PS: PreparedStatement
Marsh Posté le 21-06-2005 à 11:26:44
ah merci beaucoup, ca nécessite que je change pas mal l'architecture de mon programme, je générais les requêtes et je les envoyais à une couche d'abstraction du driver JDBC...
J'ai essayé d'échapper les caractères à la main mais que ce soit en doublant le quotes ou en ajoutant un anti slash j'ai le même problème.
Il n'est pas possible de jouer avec les chaines pour échapper ?
Marsh Posté le 21-06-2005 à 11:35:54
c'est possible, mais c'est mal
le jour ou tu change de base de données ou autre, les caractères à échapper vont pas forcément etre les memes, etc... échapper les caractères, ce n'est pas à toi de le faire, c'est au Driver
Marsh Posté le 21-01-2005 à 17:09:17
Salut
Je voudrais remplacer le caractère ' par % dans un objet de type String
J'ai essayé !
s.replace("'","%" ); : erreur de compilation, la fonction doit prendre des char
s.replace('\'','%'); compil ok, mais le résultat n'est pas bon, la chaine n'est pas modifié
Y a t'il une solution ?
Merci d'avance