Вставка строки с одинарными кавычками из 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

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