MySQL Befehl formatieren in MySQL

mister-man

Mitglied
Hallo,

derzeit habe ich ein Problem mit dem formatieren von SQL Abfragen in Java.
Ich möchte gerne Felder in der Datenbank setzen, dabei soll das NULL setzen sowie das einsetzen mehrerer wörter gehen.

Beispiel:

Java:
query = String.format("UPDATE waehrung SET name='%s', zeichen='%s', abk='%s' WHERE"
                        + " waehrungnr='%s'", this.name, this.zeichen, this.abk, this.waehrungnr);
                mysql.runQuery(query);

Setze ich hier das Feld "name='%s' = NULL, so steht der text NULL in der db, nicht ein NULL- Feld. Das einsetzen von mehreren wörtern funktioniert allerdings richtig (Das ist ein test).

Java:
query = String.format("UPDATE waehrung SET name=%s, zeichen='%s', abk='%s' WHERE"
                        + " waehrungnr='%s'", this.name, this.zeichen, this.abk, this.waehrungnr);
                mysql.runQuery(query);

Setze ich nun das Feld Name ohne ' ' (name=%s) kann ich ein NULL-Feld erzeugen, der Satz "Das ist ein Test" allerdings nicht in das Feld Schreiben, da leerstellen nthalten sind.

Was kann ich machen?

Danke im voraus....
 
Am besten benutzt du keine dynamisch zusammengebaute SQL-Strings, sondern Prepared Statements. Mit [c]PreparedStatement.setString(...)[/c] kann du jeden Wert für deine Strings setzen (ob das auch mit null funktioniert, musst du ausprobieren, zur Not gibt es aber auch [c]PreparedStatement.setNull(...)[/c]).
 

Zurück
Oben