Проблема с одинарной кавычкой в ​​sqlite на android. Нужно решить без замены кавычек

Cursor cursor = database.rawQuery

            ("SELECT * FROM table where word like '?%'".replace("?", 
              letter),null);

Когда в строке есть одинарная кавычка, приложение letter аварийно завершает работу. Необходимо решать без letter.replace(" ' ", " "), т. К. В таблице есть слова в кавычках.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
79
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы неправильно используете API операторов. Вы должны привязать буквальное строковое значение, которое хотите отобразить в фактическом запросе. То есть сделать так:

String param = letter + "%";
String query = "SELECT * FROM table WHERE word LIKE ?";
Cursor cursor = database.rawQuery(query, new String[] { param });

Ответственность за корректное экранирование выражения LIKE, которое вы пытаетесь построить, является обязанностью API.

Другие вопросы по теме