В ContentProvider приложения для Android (Java) У меня есть запрос SQLiteDatabase:
db.execsql("SELECT " +
FormsColumns._ID + ", " +
FormsColumns.DISPLAY_NAME + ", " +
FormsColumns.DISPLAY_SUBTEXT + ", " +
FormsColumns.DESCRIPTION + ", " +
FormsColumns.JR_FORM_ID + ", " +
FormsColumns.MD5_HASH + ", " +
FormsColumns.DATE + ", " +
FormsColumns.FORM_MEDIA_PATH + ", " +
FormsColumns.FORM_FILE_PATH + ", " +
FormsColumns.LANGUAGE + ", " +
FormsColumns.SUBMISSION_URI + ", " +
"CASE WHEN " + MODEL_VERSION + " IS NOT NULL THEN " +
"CAST(" + MODEL_VERSION + " AS TEXT) ELSE NULL END, " +
((oldVersion != 3) ? "" : (FormsColumns.BASE64_RSA_PUBLIC_KEY + ", ")) + FormsColumns.JRCACHE_FILE_PATH + " " +
"FROM " + FORMS_TABLE_NAME);
Это не простой запрос, я знаю, как реорганизовать простой запрос с помощью метода SQLiteDatabase.query ()чтобы предотвратить внедрение SQL, но в этом случае я не знаю, как решить эту проблему.Если я буду использовать класс SQLiteStatements с "?"вместо переменных, которые будут изменены, это могло бы работать?Как вы все предлагаете мне решить?Спасибо.