Java MessageFormat - Wie kann ich das einfügen von Werten zwischen den einfachen Anführungszeichen?
Ich habe ein problem mit dem java.text.MessageFormat-Objekt.
Ich versuche zum erstellen von SQL-insert-Anweisungen. Das problem ist, wenn ich etwas wie das hier tun:
MessageFormat messageFormat = "insert into {0} values ( '{1}', '{2}', '{3}', {4} )";
Object[] args = { str0, str1, str2, str3, str4 };
String result = messageFormat.format(args);
Bekomme ich diese für den Wert von result
:
"insert into <str0> values ( {1}, {2}, {3}, <str4> )"
Wie Sie sehen können, das problem ist, dass jedes der Ziel-Standorte, umschlossen von einfachen Anführungszeichen nicht ersetzt durch Argumente. Ich habe versucht, mit Doppel-Einzel-Zitate wie dieses: ''{1}''
und maskierte Zeichen wie diese: \'{1}\'
aber es gibt noch das gleiche Ergebnis.
edit: ich vergaß zu erwähnen, dass ich auch versucht '''{1}'''
. Das Ergebnis ist: "insert into <str0> values ( '{1}', '{2}', '{3}', <str4> )"
. Es ist, halten Sie die original-Zitate rund um, aber immer noch nicht das einfügen der Werte.
Wie kann ich dieses Problem beheben? Für das Protokoll, ich bin mit dem JDK 6u7.
InformationsquelleAutor der Frage |
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich gerade versucht, Anführungszeichen und es funktionierte gut für mich:
Ist das Ergebnis:
Ist es das, was Sie brauchen?
InformationsquelleAutor der Antwort serg
Sorry, wenn dies ist off die Seite, aber es sieht aus wie Sie versuchen, zu replizieren, die PreparedStatement, die bereits in JDBC.
Wenn Sie versuchen, eine SQL erstellen, um gegen eine Datenbank, dann schlage ich vor, Sie schauen sich PreparedStatement es bereits tut, was Sie zu tun versuchen (mit einer leicht anderen syntax).
Sorry, wenn dies ist nicht, was Sie tun, ich dachte nur, ich würde es darauf hin.
InformationsquelleAutor der Antwort Aidos
Aus: MessageFormat (Java Platform SE 8 )
InformationsquelleAutor der Antwort Chris Boran
Verwenden die triple single-quote Zeichen:
InformationsquelleAutor der Antwort Brian Duff
Erste, was mir einfiel, war zu ändern, str1, str2, str3, haben die einfachen Anführungszeichen um Sie herum.
Dann, natürlich, entfernen Sie die Anführungszeichen aus der Abfrage-string.
InformationsquelleAutor der Antwort billjamesdev