Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1375 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  java et les guillemt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

java et les guillemt

n°725834
izno55
Posté le 14-05-2004 à 12:02:06  profilanswer
 

Salut,
 
je suis sur un projet et j'aurai besoin de savoir si c'est possible et surtout comment faire pour gérer les guillemets dans un chaîne de caractères.
Je m'explique. J'ai un site web en jsp et une base mysql. Une des pages contient un formulaire avec un des champs (type text) qui doit contenir pas mal de texte. Le problème c'est que dès que l'utilisateur entre le caractère double quote, il est interprété comme la fin de la chaîne de caratère et donc la requete de mise à jour de la bd plante et ca fait chier.
 
Voilà, j'espère que j'ai été assez clair.
Si quelqu'un voit comment résoudre ce petit problème merci de m'aider.
 
Izno

mood
Publicité
Posté le 14-05-2004 à 12:02:06  profilanswer
 

n°725838
nraynaud
lol
Posté le 14-05-2004 à 12:06:14  profilanswer
 

oui, tu fais un PreparedStatement et tu "binde" la chaine au statement avant de l'exécuter.
 
On va surement te parler d'échapper le quotes mais c'est nul, utilise le binding.


---------------
trainoo.com, c'est fini
n°725842
izno55
Posté le 14-05-2004 à 12:11:26  profilanswer
 

Est ce que tu pourrais m'expilquer un peu plus ce que tu entends par là...
 
Merci

n°725846
nraynaud
lol
Posté le 14-05-2004 à 12:16:11  profilanswer
 

Code :
  1. PreparedStatement ps = con.prepareStatement("SELECT * FROM customer_tbl WHERE customer_id = ?" );
  2.   ResultSet rs = null;
  3.     ps.setString(1,""+i);
  4.     rs = ps.executeQuery();


---------------
trainoo.com, c'est fini
n°725850
uriel
blood pt.2
Posté le 14-05-2004 à 12:23:01  profilanswer
 

nraynaud a écrit :


On va surement te parler d'échapper le quotes mais c'est nul, utilise le binding.


 
pourquoi c'est nul ?


---------------
IVG en france
n°725856
nraynaud
lol
Posté le 14-05-2004 à 12:31:12  profilanswer
 

uriel a écrit :

pourquoi c'est nul ?

1) ça nécessite de recopier la chaine, puis de faire des contaténations inutiles.
2) les bidouilles sur l'échappement, on oublie toujours un truc
3) on va oublier d'échapper un truc spécifique à la base, ou de la mauvaise manière (on double les quotes normalement, mais certaines bases veulent des \, etc.)


---------------
trainoo.com, c'est fini
n°725864
uriel
blood pt.2
Posté le 14-05-2004 à 12:33:11  profilanswer
 

ok, je comprends.


---------------
IVG en france
n°725867
nraynaud
lol
Posté le 14-05-2004 à 12:34:43  profilanswer
 

en fait l'ordre des motifs, c'est 2-3-1


---------------
trainoo.com, c'est fini
n°725872
uriel
blood pt.2
Posté le 14-05-2004 à 12:37:12  profilanswer
 

nraynaud a écrit :

en fait l'ordre des motifs, c'est 2-3-1


 
c'est surtout le point 3 qui me titille, sachant que en ce moment on fait un truc pour mysql mais qui sera peut etre ammene a fonctionner sous db2.
Mai le point 2 aurait du etre inventer pour moi (comment perdre son temps sur des trucs comme ca)


---------------
IVG en france
n°725888
gfive
Posté le 14-05-2004 à 12:50:37  profilanswer
 

gfive a écrit :

:cry: ""+i
ke trouve ça pabô! :D


 
merwde...Pabon bouton!


Message édité par gfive le 14-05-2004 à 12:51:45
mood
Publicité
Posté le 14-05-2004 à 12:50:37  profilanswer
 

n°725893
nraynaud
lol
Posté le 14-05-2004 à 12:54:00  profilanswer
 

gfive a écrit :

merwde...Pabon bouton!

String.valueOf()


---------------
trainoo.com, c'est fini
n°725896
nraynaud
lol
Posté le 14-05-2004 à 12:56:26  profilanswer
 

uriel a écrit :


Mai le point 2 aurait du etre inventer pour moi (comment perdre son temps sur des trucs comme ca)

C'est surtout que ça va se finir par une "SQL injection vulnerability" sur bugtrack. Alors qu'on connait la méthode pour éviter ça à coup sur.
 
Il faut découper les responsabilités des gens, comme on le fait pour les classes. Les trucs de la base, c'est aux dev du driver de se démerder avec.


---------------
trainoo.com, c'est fini
n°725901
lorill
Posté le 14-05-2004 à 12:58:16  profilanswer
 

nraynaud a écrit :

Code :
  1. PreparedStatement ps = con.prepareStatement("SELECT * FROM customer_tbl WHERE customer_id = ?" );
  2.   ResultSet rs = null;
  3.     ps.setString(1,""+i);
  4.     rs = ps.executeQuery();




pourquoi pas un setInt plutot que de transformer i en chaine ?

n°725911
nraynaud
lol
Posté le 14-05-2004 à 13:13:05  profilanswer
 

lorill a écrit :

pourquoi pas un setInt plutot que de transformer i en chaine ?

heu passke le code, j'ai été le piquer sur le net à coup de google et je l'ai modifié à l'arrache.
 
 
par contre, pourquoi il y avait ça dans le code de départ ???


---------------
trainoo.com, c'est fini
n°725914
gfive
Posté le 14-05-2004 à 13:15:13  profilanswer
 

Pkoi ""+i??
 
C'est à cause des feignasses qui préfèrent utiliser ça plutôt que de faire String.valueOf(i).
 
Cai mal! :D

n°725932
lorill
Posté le 14-05-2004 à 13:25:00  profilanswer
 

gfive a écrit :

Pkoi ""+i??
 
C'est à cause des feignasses qui préfèrent utiliser ça plutôt que de faire String.valueOf(i).


nan mais surtout que la c'est crétin de le transformer en chaine

n°725941
nraynaud
lol
Posté le 14-05-2004 à 13:30:58  profilanswer
 

lorill a écrit :

nan mais surtout que la c'est crétin de le transformer en chaine

tiens :
http://www.javaworld.com/javaworld [...] power.html
 
il y a peut-être une explication.


---------------
trainoo.com, c'est fini
n°725976
lorill
Posté le 14-05-2004 à 13:44:44  profilanswer
 


pas vraiment, non  [:sinclaire]

n°725983
nraynaud
lol
Posté le 14-05-2004 à 13:46:38  profilanswer
 

lorill a écrit :

pas vraiment, non  [:sinclaire]

le produit de coupe, encore une fois ?


---------------
trainoo.com, c'est fini
n°725992
lorill
Posté le 14-05-2004 à 13:52:32  profilanswer
 

nraynaud a écrit :

le produit de coupe, encore une fois ?


sans doute, surtout que page2 dans leur explication de DebuggableStatement, ils ont implémenté setInt()  [:ziiio]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  java et les guillemt

 

Sujets relatifs
Java stored procedure[java] JTextArea : retour à la ligne ?
[JAVA ] Qui connait JAL (Librairie baser sur JXTA)[java] probleme de newbie (tri de tableau)
JAVA - java.lang.OutOfMemoryError[Java] Je cherche un soft gratuit d'analyse des classes
Différence entre Java de Sun et Machine Virtuel Java de Microsoft ?[java]Pb de bouton et de refresh sur un JDialog
Monitorer un réseau local en java[java] Fréquence des itérations dans un Listener
Plus de sujets relatifs à : java et les guillemt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR