Ormlite метод escape-строки? - PullRequest
9 голосов
/ 19 июня 2011

Есть ли собственный способ экранирования строк для Ormlite для Android?

Например, если я хочу указать строку: escape-функцию ormlite, она должна быть указана как escape-функция ormlite.

TestDao.queryForFirst(TestDao.queryBuilder().where().like("stats", stats)
    .prepare())

Я пытался использовать метод escapeValue в UpdateBuilder, но он только вносит следующие изменения: 'escape-функция ormlite'. Он добавляет одинарные кавычки в начало и конец оператора. Есть ли встроенная поддержка экранирования строк для обеспечения безопасности инъекций SQL?

Если нет, то как это сделать?

Спасибо!

1 Ответ

17 голосов
/ 06 июля 2011

Я пытался использовать метод escapeValue в UpdateBuilder, но он только вносит следующие изменения: 'escape-функция ormlite'.Он добавляет одинарные кавычки в начало и конец оператора.Есть ли встроенная поддержка экранирования строк для обеспечения безопасности инъекций SQL?

Это часто задаваемые вопросы.Правильный способ сделать это - использовать аргумент SelectArg, чтобы SQL мог использовать?тип конструкции.Вот еще один вопрос, говорящий об этом .

SelectArg selectArg = new SelectArg(stats);
TestDao.queryForFirst(
    TestDao.queryBuilder().where().like("stats", selectArg).prepare());

Вот документация по функциональности select-arg .

Редактировать:

Как указывает @Moritz, если вы действительно обновляете базу данных, вы также можете использовать SelectArg с UpdateBuilder:

SelectArg arg = new SelectArg("Some value");
updateBuilder.updateColumnValue(MY_COLUMN, arg);
...