faecher:informatik:oberstufe:datenbanken:projekt:java_db:java_db_null:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:projekt:java_db:java_db_null:start [02.04.2025 17:06] – [Verarbeitung mit Java] Frank Schiebelfaecher:informatik:oberstufe:datenbanken:projekt:java_db:java_db_null:start [03.04.2025 20:36] (aktuell) – [Warum ist das wichtig?] Frank Schiebel
Zeile 27: Zeile 27:
 {{ :faecher:informatik:oberstufe:datenbanken:projekt:java_db:java_db_null:wasnull.png |}} {{ :faecher:informatik:oberstufe:datenbanken:projekt:java_db:java_db_null:wasnull.png |}}
  
-Man könnte jetzt also so etwas tun, um das Problem zu umgehen: +Man könnte jetzt also so etwas tun, um das Problem zu umgehen, und den NULL_wert aus der Datenbank in die Java-Variable zu überführen
  
 <code java> <code java>
Zeile 38: Zeile 38:
 [...] [...]
 </code> </code>
 +
 +Allerdings klappt das bei den primitiven Datentypen wie  wie ''int'', ''char'', ''double'' u.ä. nicht, da diese keine Objekte sind und darum nicht ''null'' sein können.
 +
 +Aus diesem Grund muss man bei den primitiven Datentypen die entsprechenden [[faecher:informatik:oberstufe:java:algorithmen:assoziative_arrays:start#anmerkung_zu_wrapper-klassen|Wrapper-Klassen]] verwenden - also ''Integer'', ''Character'', ''Double'' und Co.
 +
 +Eine **korrekte Variante** sieht also so aus:
 +
 +<code java>
 +[...]
 +Integer wert = rs.getInt(3);   // → 0, aber in der DB NULL!
 +if(rs.wasNull()) {
 +  wert = null;
 +}
 +[...]
 +</code>
 +
 +===== Warum ist das wichtig? =====
 +
 +Wenn man die Werte die in einer Datenbank gespeichert sind ausgeben oder verändern möchte, ist es wichtig, zu unterscheiden, ob ein Information nicht vorhanden war oder obn der Wert 0 in der Datenbank gespeichert war. wenn man beispielsweise die Textfelder einer GUI mit werten aus eine Datenbank befüllen möchte, könnte das so aussehen:
 +
 +<code java>
 +ResultSet rs = stm.executeQuery("…");
 +rs.next();
 +
 +Integer x = rs.getInt(1);
 +if (rs.wasNull()) x = null;
 +
 +[…]
 +
 +if (x == null) {
 +  textBox1.setText("Kein Wert in der DB vorhanden");
 +} else {
 +  textBox1.setText(x.toString());
 +}
 +</code>
 +
 +===== Material =====
 + 
 +
 +[[https://slides.info-bw.de/fs-wiki-java-db-03/|Präsentation - NULL-Werte]] [[https://slides.info-bw.de/fs-wiki-java-db-03/?print-pdf|(PDF)]]((Link öffnen, dann aus dem Browser in ein PDF drucken)) 
  • faecher/informatik/oberstufe/datenbanken/projekt/java_db/java_db_null/start.1743613596.txt.gz
  • Zuletzt geändert: 02.04.2025 17:06
  • von Frank Schiebel