Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas
cool en Java comme " ' \ par des \', \", \\ dans une requète SQL.
Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de
l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "\'") mais ça ne marche pas,
càd le \ pose problème.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Isammoc
Frédéric Moser écrivait news:410e0243$0$29380$:
Bonjour,
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas cool en Java comme " ' par des ', ", dans une requète SQL. Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le essaye remplacé par \
car est aussi un caractère d'échappement en java...
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas
cool en Java comme " ' par des ', ", \ dans une requète SQL.
Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de
l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas,
càd le pose problème.
Comment s'y prend on alors en général?
pour le
essaye \ remplacé par \\
car est aussi un caractère d'échappement en java...
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas cool en Java comme " ' par des ', ", dans une requète SQL. Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le essaye remplacé par \
car est aussi un caractère d'échappement en java...
Merci d'avance ;-)
Tu mer remercieras si ca marche (pas testé)
Fred
-- Isammoc
Sebastien
Si tu crains d'avoir des caractères comme "'" dans ta requête SQL, utilise des PreparedStatement. C'est bien plus propre que d'essayer de remplacer tous les caractères qui pourraient corrompre ta requête.
Sébastien.
Isammoc wrote:
Frédéric Moser écrivait news:410e0243$0$29380$:
Bonjour,
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas cool en Java comme " ' par des ', ", dans une requète SQL. Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le essaye remplacé par \
car est aussi un caractère d'échappement en java...
Merci d'avance ;-)
Tu mer remercieras si ca marche (pas testé)
Fred
Si tu crains d'avoir des caractères comme "'" dans ta requête SQL, utilise des PreparedStatement.
C'est bien plus propre que d'essayer de remplacer tous les caractères qui pourraient corrompre ta
requête.
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas
cool en Java comme " ' par des ', ", \ dans une requète SQL.
Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de
l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas,
càd le pose problème.
Comment s'y prend on alors en général?
pour le
essaye \ remplacé par \\
car est aussi un caractère d'échappement en java...
Si tu crains d'avoir des caractères comme "'" dans ta requête SQL, utilise des PreparedStatement. C'est bien plus propre que d'essayer de remplacer tous les caractères qui pourraient corrompre ta requête.
Sébastien.
Isammoc wrote:
Frédéric Moser écrivait news:410e0243$0$29380$:
Bonjour,
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas cool en Java comme " ' par des ', ", dans une requète SQL. Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le essaye remplacé par \
car est aussi un caractère d'échappement en java...
Merci d'avance ;-)
Tu mer remercieras si ca marche (pas testé)
Fred
trickyfox
Essaye donc cette methode magique :-)
///////////////////////////// CLASSE SQLUTILS //////////////////////////
import java.sql.*;
public class SQLUtils{
/** objet pour faire tes requetes*/ private static Statement statement;
/** objet de connection a la base*/ private static Connection connection;
/** mot de passe de l'utilisateur */ private final static String PASSWORD = "";
// creation de la connection static{ try { Class.forName(DRIVER_MYSQL); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } }
/** * <p> * Ouvre la connection a la base donne dans l'interface {@link SQLConstants}. * </p> * @throws SQLException si la connection n'a pu etre etablie */ public static Statement createSQLConnection() throws SQLException { // remplace URL,USER et PASSWORD par tes valeurs a toi connection = DriverManager.getConnection(URL, USER, PASSWORD); statement = connection.createStatement(); return statement; }
/** * <p> * Permet d'obtenir l'objet utilisee pour la connection * </p> */ public static Connection getConnection(){ return connection; }
}
/////////////////////////////// CLASSE DU TON DE TON CHOIX //////////////
// je mets pas les imports necessaires public class MaClasse {
public static String addSlashes(String str){ String newStr = new String();
// les deux lignes servent a recuperer des meta informations sur la base // de donnees en elle meme. Connection conn = SQLUtils.getConnection(); DatabaseMetaData rmd = conn.getMetaData(); try{ StringTokenizer stoken = new StringTokenizer(oldQuery,"'"); while ( true ){ newStr += (String) stoken.nextElement(); if ( stoken.hasMoreElements() ) newStr += conn.getSearchStringEscape() + "'"; else break; } } catch( Exception e) { }
return newQuery; } }
/////////////////////// une utilisation possible ////////
public static void main(String[] args){ String s = MaClasse.addSlashes("l'expert en java existe."); System.out.println(s); }
Cette methode va alors t'afficher a l'ecran :
l'expert en java
A+ En cas de prb reviens sur le forum.
Essaye donc cette methode magique :-)
///////////////////////////// CLASSE SQLUTILS //////////////////////////
import java.sql.*;
public class SQLUtils{
/** objet pour faire tes requetes*/
private static Statement statement;
/** objet de connection a la base*/
private static Connection connection;
/** mot de passe de l'utilisateur */
private final static String PASSWORD = "";
// creation de la connection
static{
try {
Class.forName(DRIVER_MYSQL);
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
}
}
/**
* <p>
* Ouvre la connection a la base donne dans l'interface {@link SQLConstants}.
* </p>
* @throws SQLException si la connection n'a pu etre etablie
*/
public static Statement createSQLConnection() throws SQLException {
// remplace URL,USER et PASSWORD par tes valeurs a toi
connection = DriverManager.getConnection(URL, USER, PASSWORD);
statement = connection.createStatement();
return statement;
}
/**
* <p>
* Permet d'obtenir l'objet utilisee pour la connection
* </p>
*/
public static Connection getConnection(){
return connection;
}
}
/////////////////////////////// CLASSE DU TON DE TON CHOIX //////////////
// je mets pas les imports necessaires
public class MaClasse {
public static String addSlashes(String str){
String newStr = new String();
// les deux lignes servent a recuperer des meta informations sur la base
// de donnees en elle meme.
Connection conn = SQLUtils.getConnection();
DatabaseMetaData rmd = conn.getMetaData();
try{
StringTokenizer stoken = new StringTokenizer(oldQuery,"'");
while ( true ){
newStr += (String) stoken.nextElement();
if ( stoken.hasMoreElements() )
newStr += conn.getSearchStringEscape() + "'";
else
break;
}
}
catch( Exception e) { }
return newQuery;
}
}
/////////////////////// une utilisation possible ////////
public static void main(String[] args){
String s = MaClasse.addSlashes("l'expert en java existe.");
System.out.println(s);
}
///////////////////////////// CLASSE SQLUTILS //////////////////////////
import java.sql.*;
public class SQLUtils{
/** objet pour faire tes requetes*/ private static Statement statement;
/** objet de connection a la base*/ private static Connection connection;
/** mot de passe de l'utilisateur */ private final static String PASSWORD = "";
// creation de la connection static{ try { Class.forName(DRIVER_MYSQL); } catch (ClassNotFoundException e) { System.out.println(e.getMessage()); } }
/** * <p> * Ouvre la connection a la base donne dans l'interface {@link SQLConstants}. * </p> * @throws SQLException si la connection n'a pu etre etablie */ public static Statement createSQLConnection() throws SQLException { // remplace URL,USER et PASSWORD par tes valeurs a toi connection = DriverManager.getConnection(URL, USER, PASSWORD); statement = connection.createStatement(); return statement; }
/** * <p> * Permet d'obtenir l'objet utilisee pour la connection * </p> */ public static Connection getConnection(){ return connection; }
}
/////////////////////////////// CLASSE DU TON DE TON CHOIX //////////////
// je mets pas les imports necessaires public class MaClasse {
public static String addSlashes(String str){ String newStr = new String();
// les deux lignes servent a recuperer des meta informations sur la base // de donnees en elle meme. Connection conn = SQLUtils.getConnection(); DatabaseMetaData rmd = conn.getMetaData(); try{ StringTokenizer stoken = new StringTokenizer(oldQuery,"'"); while ( true ){ newStr += (String) stoken.nextElement(); if ( stoken.hasMoreElements() ) newStr += conn.getSearchStringEscape() + "'"; else break; } } catch( Exception e) { }
return newQuery; } }
/////////////////////// une utilisation possible ////////
public static void main(String[] args){ String s = MaClasse.addSlashes("l'expert en java existe."); System.out.println(s); }
Cette methode va alors t'afficher a l'ecran :
l'expert en java
A+ En cas de prb reviens sur le forum.
Cédric Chabanois
Ouai, en plus je suppose qu'une partie de la requête est générée à l'aide d'une chaîne entrée par le client (genre chaîne de recherche). Si c'est le cas, attends-toi au pire si il essaie de passer un bout de code SQL. Niveau sécurité c'est pas top.
Utilise un PreparedStatement, il n'y a que des avantages ...
Cédric
Si tu crains d'avoir des caractères comme "'" dans ta requête SQL, utilise des PreparedStatement. C'est bien plus propre que d'essayer de remplacer tous les caractères qui pourraient corrompre ta requête.
Sébastien.
Isammoc wrote:
Frédéric Moser écrivait news:410e0243$0$29380$:
Bonjour,
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas cool en Java comme " ' par des ', ", dans une requète SQL. Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le essaye remplacé par \
car est aussi un caractère d'échappement en java...
Merci d'avance ;-)
Tu mer remercieras si ca marche (pas testé)
Fred
Ouai, en plus je suppose qu'une partie de la requête est générée à
l'aide d'une chaîne entrée par le client (genre chaîne de recherche).
Si c'est le cas, attends-toi au pire si il essaie de passer un bout de
code SQL. Niveau sécurité c'est pas top.
Utilise un PreparedStatement, il n'y a que des avantages ...
Cédric
Si tu crains d'avoir des caractères comme "'" dans ta requête SQL,
utilise des PreparedStatement. C'est bien plus propre que d'essayer de
remplacer tous les caractères qui pourraient corrompre ta requête.
Je cherche qu'elle est le meilleur moyen de remplacer les caractères
pas cool en Java comme " ' par des ', ", \ dans une requète SQL.
Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc
de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche
pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le
essaye \ remplacé par \\
car est aussi un caractère d'échappement en java...
Ouai, en plus je suppose qu'une partie de la requête est générée à l'aide d'une chaîne entrée par le client (genre chaîne de recherche). Si c'est le cas, attends-toi au pire si il essaie de passer un bout de code SQL. Niveau sécurité c'est pas top.
Utilise un PreparedStatement, il n'y a que des avantages ...
Cédric
Si tu crains d'avoir des caractères comme "'" dans ta requête SQL, utilise des PreparedStatement. C'est bien plus propre que d'essayer de remplacer tous les caractères qui pourraient corrompre ta requête.
Sébastien.
Isammoc wrote:
Frédéric Moser écrivait news:410e0243$0$29380$:
Bonjour,
Je cherche qu'elle est le meilleur moyen de remplacer les caractères pas cool en Java comme " ' par des ', ", dans une requète SQL. Je me souviens que ça existe en PHP... mais j'ai cherché dans la doc de l'API Java et j'ai rien trouvé.
J'ai bien essayé monString.replaceAll("'", "'") mais ça ne marche pas, càd le pose problème.
Comment s'y prend on alors en général?
pour le essaye remplacé par \
car est aussi un caractère d'échappement en java...