Вставка строки с одинарными кавычками из Java в Postgresql - PullRequest
2 голосов
/ 05 июня 2009

Я вставляю текст из приложения Java в базу данных Postgresql, но все происходит сбой, когда в String встречается символ 'char. Я пытался использовать replaceAll ("'", "\\'"); даже различные варианты этого с большим количеством \ chars, но он по-прежнему помещает одиночный 'в строку без знака escape.

Есть ли способ заменить 'на \' в строке? Или другой способ поместить строки, содержащие одинарные кавычки, в Postgresql?

Ответы [ 2 ]

15 голосов
/ 05 июня 2009

Вам не нужно беспокоиться об этом вручную, если вы правильно используете подготовленные операторы .

2 голосов
/ 05 июня 2009

Большинство реализаций SQL используют '' (2 одинарные кавычки), чтобы экранировать одинарную кавычку.

Пример:

SELECT * FROM users WHERE f_name='foo''bar';

Или вы можете использовать двойной знак доллара:

Пример:

SELECT * FROM users WHERE f_name=$$foo''bar$$;

Оба оператора будут искать строку foo'bar

...