Update mit null

Status
Nicht offen für weitere Antworten.

Samson_Miller

Bekanntes Mitglied
Ich habe ein Eigebabefeld in das der Benutzer einen Wert eigeben kann, er kann das Feld aber auch leer lassen. Dieser Wert soll dann in der DB per Update gespeichert werden. Wenn der Benutzer nichts eingegeben hat, dann soll auch nichts in der DB gespeichert werden.

Ich arbeite mit PreparedStatement. Wie bekomme ich das jetzt hin, dass das update-statement:

Code:
UPDATE tabelle SET name=null;

an die Datenbank schickt, wenn der Benutzer in das Eingabefeld "name" nichts eingegeben hat?
 
S

SlaterB

Gast
was genau ist die Frage?
wie du das Statement formulierst oder wie von der GUI aus die ganze Sache anstößt oder oder?

soll wirklich in der ganzen Tabelle der Name gelöscht werden?
 

Samson_Miller

Bekanntes Mitglied
Das Statment sieht am Anfang folgendermaßen aus:

Code:
PreparedStatement ppSt = connection.prepareStatement("UPDATE tabelle SET name=?");
ppSt.setString(1,value); //value ist die Eingabe des Benutzers
ppSt.executeUpdate();

in value steht die Eingabe des Benutzers. Wenn der Benutzer in das Eingabefeld "Maik" eingibt, dann soll das Update-Statement folgendermaßen aussehen:

Code:
UPDATE tabelle SET name='Maik';

Wenn der Benutzer das Eingabefeld leer lässt, dann soll das update-Statement folgendermaßen aussehen:

Code:
UPDATE tabelle SET name=null;

wenn ich

Code:
ppSt.setString(1,null);

schreibe, dann bekomme ich eine exception. Meine Frage ist nun, wie kann ich dem Statement ein null übergeben kann.
 
S

SlaterB

Gast
und, was funktioniert daran mit deinem bisherigen Code nicht?

falls das TextField bei Nichteingabe statt null eher "" zurückgibt,
dann ist das ja einfach zu ändern,

falls
ppSt.setString(1,null);
nicht den gewünschten Effekt hat oder verboten ist, dann musst du diesen Spezialfall eben mit if/ else abfangen und direkt einen String "UPDATE tabelle SET name=null" verwenden

das sind doch alles einfache Gedanken,
oder was genau ist das tatsächliche Problem?
ein drittes Mal möchte ich bitte nicht nachfragen müssen.. ;)

edit:
> dann bekomme ich eine exception. Meine Frage ist nun, wie kann ich dem Statement ein null übergeben kann

ah, ok, eine Info,
dazu habe ich ja ein bisschen geschrieben,
obs anders geht, kann ich persönlich nicht sagen
 

Samson_Miller

Bekanntes Mitglied
mit

ppSt.setString(1,null);

geht das leider nicht, und das Abfrage mit if/else ist mir zu aufwändig, ich dachte, da gibt es vielleicht eine bessere Lösung, dem PreparedStatement ein null zu übergeben.
 
G

Guest

Gast
Code:
ppSt.setNull(1, Types.VARCHAR);
 
S

SlaterB

Gast
nur ganz nebenbei:
hättest du im ersten Posting überflüssige Details wie 'Eingabefeld in das der Benutzer einen Wert eigeben kann' nicht erwähnt,
sondern direkt gesagt:

Ziel:
UPDATE tabelle SET name=?; als PreparedStatement,

ppSt.setString(1,null); geht nicht,
+
if (nullValue) {
UPDATE tabelle SET name= null;
} else {
UPDATE tabelle SET name=?;
ppSt.setString(1,name);
}
ist nicht gewünscht (was du alles schon wusstest),
dann wären die ersten 4 unnötigen Antworten gar nicht erst gekommen ;)

--------


ach und dann sehe ich noch

void setNull(int parameterIndex, int sqlType)
Sets the designated parameter to SQL NULL.

in der API ;)
 

Samson_Miller

Bekanntes Mitglied
das void setNull(int parameterIndex, int sqlType) ist mir auch aufgefallen, leider kann ich damit nicht null übergeben sondern z.B. 0, oder ander integer.
 
S

SlaterB

Gast
grummel, das kanntest du auch schon? ;)

so und wieso willst du da null übergeben?
ppSt.setNull(1, Types.VARCHAR);
wie Gast schon geschrieben hat,
ein kleines if/ else muss dann natürlich schon sein ;)
 
G

Guest

Gast
Samson_Miller hat gesagt.:
das void setNull(int parameterIndex, int sqlType) ist mir auch aufgefallen, leider kann ich damit nicht null übergeben sondern z.B. 0, oder ander integer.
Der erste Parameter von setNull ist Index des Parameter in PreparedStatement, der zweite der Typ. Nix 0. ;)

Schreib dir am besten eine Hilfsklasse, nennen wir sie mal DBUtil, die folgende Methoden enthält.

Code:
public static void setValue(int index, PreparedStatement stmt, String value) throws SQLException
{
   if( value != null )
      stmt.setString(index, value);
   else
      stmt.setNull(index, Types.VARCHAR);
}

public static void setValue(int index, PreparedStatement stmt, Integer value) throws SQLException
{
   if( value != null )
      stmt.setInt(index, value.intValue());
   else
      stmt.setNull(index, Types.INTEGER);
}

usw.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T compiler fehler: should be mapped with insert="false" update="false" Datenbankprogrammierung 1
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
OnDemand Select vs Update ins blaue, was ist teurer? Datenbankprogrammierung 11
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
R HSQLDB ResultSet update aktualisiert DB, aber nicht das ResultSet Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
M SQL-Statement SQL mit Java, Update Fehler Datenbankprogrammierung 1
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
OnDemand SQL-Statement Update mit innerjoin Datenbankprogrammierung 18
OnDemand Update table SET will nicht Datenbankprogrammierung 9
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
S Update Tabelle aus Textfeld Datenbankprogrammierung 2
S JPA: update von Schlüsselwerten Datenbankprogrammierung 2
ruutaiokwu sql server werte swappen beim update-vorgang mit unique-constraints..? Datenbankprogrammierung 2
M Update Befehl Datenbankprogrammierung 1
S MySQL Nach wiederholtem Update falsche Werte (im Speicher?) Datenbankprogrammierung 1
M SQL-Statement Datentypen in Kriterienausdruck unverdräglich bei Update auf DB von Java aus Datenbankprogrammierung 0
M SQL UPDATE richtig anwenden BITTE um HILFE Datenbankprogrammierung 3
M SQL UPDATE führt zu JAVA Absturz Datenbankprogrammierung 6
S HSQLDB Verbieten eines update auf eine bestimmte reihe Datenbankprogrammierung 4
M Derby/JavaDB Neu geschriebener Eintrag per UPDATE lässt sich nicht unmittelbar abrufen Datenbankprogrammierung 2
S UPDATE user Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
B DB Update via batch Datenbankprogrammierung 3
H Update ganze zeile Datenbankprogrammierung 4
R sqlite UPDATE wirkt nicht aus Java Datenbankprogrammierung 7
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
D Error 1452: Cannot add or update a child row: a foreign key constraint fails Datenbankprogrammierung 15
D SQL Update auf eine Query möglich? Datenbankprogrammierung 4
5 Datenbank Update Datenbankprogrammierung 8
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
turmaline Oracle "Häppchenweises" Update durchführen Datenbankprogrammierung 4
C MySQL Problem mit UPDATE Abfrage Datenbankprogrammierung 13
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
M Access Update Statement Fehler update -> unmöglich? Datenbankprogrammierung 3
J MyBatis - Update Problem Datenbankprogrammierung 4
S JPA: Problem mit Update von Daten Datenbankprogrammierung 7
I Derby/JavaDB Update Fehler Datenbankprogrammierung 4
N Update Prepared Statement Fehler bei Argumenten Datenbankprogrammierung 3
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
R MS Access mit Java Problem mit Update Statment Datenbankprogrammierung 13
1 On duplicate Key update Datenbankprogrammierung 3
M DB update geht einfach nicht Datenbankprogrammierung 2
F ResultSet kann Datenbank nicht update, warum? Datenbankprogrammierung 3
G MySQL Update Datenbankprogrammierung 5
M MySQL größere von zwei Zahlen in Update Statement Datenbankprogrammierung 2
T Update an SQL Tabelle ?! Datenbankprogrammierung 10
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
C Update Table1 mit Relationship Table2 Datenbankprogrammierung 6
prakdi einzelnen SQL Eintrag finden der "update" enthält Datenbankprogrammierung 3
V Datenbank Update Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
M Hibernate: Insert statt Update Datenbankprogrammierung 8
E Update DB; Werte aus Feldern übernehmen Datenbankprogrammierung 5
H Batch Update/Insert Datenbankprogrammierung 4
E Insert oder Update- Prüfung Datenbankprogrammierung 3
H Datenbank Update Datenbankprogrammierung 3
J SQL Abfrage: Verschiedene Werte in einer Spalte mit einem Update Befehl? Datenbankprogrammierung 7
cosmic Problem beim Update einer Oracle DB Datenbankprogrammierung 7
M Update mysql Fehler ?? Datenbankprogrammierung 4
T Problem beim Update in die Access DB Datenbankprogrammierung 9
R Update Time auslesen Datenbankprogrammierung 2
T DB2 delete/update über 2 Tabellen Datenbankprogrammierung 2
K Ist mein UPDATE fehlerhaft? Datenbankprogrammierung 3
G Update-Befehl Fehlerhaft ?? Datenbankprogrammierung 2
G Update Befehl funkt nicht. WARUM? Datenbankprogrammierung 5
S Update Problem Datenbankprogrammierung 3
M Insert Update usw. Datenbankprogrammierung 2
S CashedRowSet update - oder was mache ich falsch - Datenbankprogrammierung 6
B [SQL] UPDATE oder REPLACE INTO Befehl Datenbankprogrammierung 10
H UPDATE . Datenbankprogrammierung 3
S PostgreSQL SELECT/UPDATE etc. Datenbankprogrammierung 4
T Update-Frage Datenbankprogrammierung 11
Y Hibernate - Update bestimmter Spalten Datenbankprogrammierung 2
G update sperren bei client/server anwendung Datenbankprogrammierung 7
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
B Update funktioniert nicht Datenbankprogrammierung 8
R Update und Insert Gleichzeitig? Datenbankprogrammierung 2
K MsAccess immer beim zweiten Update java.sql.SQLException Datenbankprogrammierung 28
N Hibernate & hsqldb: Problem bei db-update Datenbankprogrammierung 7
T Problem beim Update vom Resultset + Firebird Datenbankprogrammierung 2
G Update Statement automatisch unterteilen lassen Datenbankprogrammierung 3
G ist hieran was falsch ? UPDATE Anweisung Datenbankprogrammierung 8
W Hibernate Update Problem Datenbankprogrammierung 3
A Syntaxfehler bei update. Datenbankprogrammierung 8
O Update-Problem mit Hibernate-Framework Datenbankprogrammierung 5
L Problem mit Update Datenbankprogrammierung 14
L UPDATE löst Exception aus Datenbankprogrammierung 6
G Problem mit Datums-Format bei UPDATE Datenbankprogrammierung 3
F Update mit Prepared Statements Datenbankprogrammierung 10
Maxim6394 EclipseLink + SQLite | Unable to acquire a connection from driver [null] Datenbankprogrammierung 6
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
P Herausfinden wann Query null zurück gibt? Datenbankprogrammierung 1
N DBUnit und null Datenbankprogrammierung 6
P Null Werte bei der Normalisierung Datenbankprogrammierung 2
Z ResultSet ist null warum? Datenbankprogrammierung 12
krgewb getDouble auch mit null möglich? Datenbankprogrammierung 2
D SQL Server Android App: 'int java.lang.String.length()' on a null object reference Datenbankprogrammierung 15

Ähnliche Java Themen

Neue Themen


Oben