Google App Engine 的 JDO:转义引号

Posted

技术标签:

【中文标题】Google App Engine 的 JDO:转义引号【英文标题】:JDO for Google App Engine: escaping quotes 【发布时间】:2010-12-02 14:11:27 【问题描述】:

如何在 JDO (Google App Engine) 中转义查询参数?

例如,如果变量名可能包含不安全字符作为单引号('),我如何使下一个sn-p安全

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

【问题讨论】:

我这里有更多代码和参考资料***.com/questions/9552064/… 【参考方案1】:

改为使用查询参数,它比在查询本身中包含值更安全。以下是 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");

【讨论】:

+1 亿。如果您尝试在查询中使用字符串替换,我希望有某种方法可以让计算机爆炸。 遗憾的是,GAE 文档示例使用 String query = "..." 样式,至少我找到的页面是这样。无法找到从哪里导入 Query,但我还没有看太多;我会得到它的! :) 顺便说一句,它是:import javax.jdo.Query;对于下一个寻找的人。呃。 ;)

以上是关于Google App Engine 的 JDO:转义引号的主要内容,如果未能解决你的问题,请参考以下文章

在哪里使用 JDO/Google App Engine 设置 TransactionOptions?

使用 Google App Engine 和 JDO 进行全文搜索?

Google App Engine、JDO 和 equals/hashCode

在 Google App Engine 上将 JDO 与 HRD 结合使用

Google App Engine (JDO) 中 ID 的 Key 或 Long

为啥我在 Google App Engine 上使用 JDO 的查询中出现转换错误?