问题
How do I escape parameters of queries in JDO (Google App Engine)?
For example, how do I make the next snippet safe, if the variable name may contain unsafe chars as single quotes (')
PersistenceManager pm = ...;
String query = "select from Person where name='"+name+"'";
List<Shortened> shortened = (List<Shortened>) pm.newQuery(query).execute();
回答1:
Use query parameters instead, it's a much safer than including the values in the query itself. Here is an example from the GAE documentation:
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");
来源:https://stackoverflow.com/questions/1496996/jdo-for-google-app-engine-escaping-quotes