Вставка строки с одинарными кавычками из Java в Postgresql
Я вставляю текст из приложения Java в базу данных Postgresql, но все это вылетает, когда в String встречается символ 'char. Я пытался использовать replaceAll(" ' ", " \\' "); даже различные варианты этого с большим количеством символов \ chars, но он все еще помещает один символ в строку без знака escape.
Есть ли способ заменить "на" в строке? Или другой способ поместить строки, содержащие одинарные кавычки, в Postgresql?
2 ответа
Решение
Вам не нужно беспокоиться об этом вручную, если вы правильно используете подготовленные операторы.
Большинство реализаций SQL используют '' (2 одинарные кавычки) для экранирования одинарной кавычки.
Пример:
SELECT * FROM users WHERE f_name='foo''bar';
Или вы можете использовать двойной знак доллара:
Пример:
SELECT * FROM users WHERE f_name=$$foo''bar$$;
Оба оператора будут искать строку foo'bar