Question

Comment puis-je échapper des paramètres de requêtes dans JDO (Google App Engine)?

Par exemple, comment puis-je faire le prochain extrait sûr, si le nom de la variable peut contenir les caractères dangereux comme des guillemets simples ( ')

PersistenceManager pm = ...;
String query = "select from Person where name='"+name+"'";
List<Shortened> shortened = (List<Shortened>) pm.newQuery(query).execute();
Était-ce utile?

La solution

Utiliser les paramètres de la requête à la place, il est beaucoup plus sûr que d'inclure les valeurs dans la requête elle-même. Voici un exemple de la documentation GAE:

Query query = pm.newQuery("select from Employee " +
                          "where lastName == lastNameParam " +
                          "order by hireDate desc " +
                          "parameters String lastNameParam");

List<Employee> results = (List<Employee>) query.execute("Smith");
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top