سؤال

كيف يمكنني الهروب من معلمات الاستفسارات في JDO (محرك تطبيق Google)؟

على سبيل المثال، كيف يمكنني إجراء Snippet Snippet التالي، إذا كان اسم المتغير قد يحتوي على أطعمة غير آمنة كما علامات اقتباس واحدة (')

PersistenceManager pm = ...;
String query = "select from Person where name='"+name+"'";
List<Shortened> shortened = (List<Shortened>) pm.newQuery(query).execute();
هل كانت مفيدة؟

المحلول

استخدم معلمات الاستعلام بدلا من ذلك، فهو أمامي بكثير من إدراج القيم في الاستعلام نفسه. هنا مثال من وثائق 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");
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top