У меня возникла проблема с использованием объекта java.text.MessageFormat.
Я пытаюсь создать инструкции вставки SQL. Проблема в том, что когда я делаю что-то вроде этого:
MessageFormat messageFormat = "insert into {0} values ( '{1}', '{2}', '{3}', {4} )";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);
Я получаю это значение result
:
"insert into <str0> values ( {1}, {2}, {3}, <str4> )"
Как вы можете видеть, проблема в том, что любое из целевых местоположений, заключенных в одинарные кавычки, не заменяется аргументами. Я попытался использовать двойные одинарные кавычки вроде этого: ''{1}''
и экранированные символы вроде этого: \'{1}\'
, но он все равно дает тот же результат.
edit: Я забыл упомянуть, что я также пробовал '''{1}'''
. Результат: "insert into <str0> values ( '{1}', '{2}', '{3}', <str4> )"
. Он сохраняет исходные кавычки, но не вставляет значения.
Как я могу решить эту проблему? Для записи я использую JDK 6u7.