pgoetz: Objekt in Long, String oder Integer parsen

Beitrag lesen

Guten Morgen!

[...] Ich kriege auch schon ein schlechtes Gewissen, wenn ich so viel Frage und Leute für mich Zeit opfern müssen. Hoffentlich werde ich aber auch mal zum Checker und kann anderen helfen.

Du brauchst kein schlechtes Gewissen haben. Jeder, der hier hilft, macht das gerne. Bei mir sind es einfach meine kleinen Pausen, wenn ich kurz etwas anderes sehen will, als meine IDE. :)

[...]
Ich dachte wie gesagt, dass folgende Methode zum Auslesen aus der Datenbank alles als striktes Objekt holt:
[...]
Vor allem, weil rs. ja auch Methoden hat, wo es verschiedene andere Typen zurückgeben könnte.

Das ResultSet schaut bei der allgemeinen Methode getObject() einfach nicht nach, was es in der Hand hat (es greift also in die Tasche und zieht das gewünschte Objekt raus, interessiert sich aber nicht dafür, ob es Banane oder Handgranate ist). Das Objekt selbst hat aber einen konkreten Typ. Nämlich den, der beim reinlegen in das ResultSet vergeben wurde (hängt vom Datenbankspaltentyp und dem JDBC-Treiber (dem DBMS) ab.

[...]
Mir ist auch aufgefallen, dass ich bei einem count(*) das Objekt auch in ein Long casten muss, damit es funktioniert, ein Integer geht nicht. Auch interessant zu wissen.

Das hängt auch wieder vom JDBC-Treiber ab. Der eine legt das Ergebnis eines count in einem Integer ab, der andere in einem Long. Wobei Long in meinen Augen weiterverbreitet ist.

[...] Bei Birthday hab ich aber noch ein kleines Problem:

String tmp= String birthday =((String)hashData.get("birthday").elementAt(i)).toString();

In der Datenbank ist es als Date angegeben, dann sollte doch das Casten in (String) auch nicht möglich sein. Laut der Klammerung (verändert) sollte er aber erst Casten und auf das ermittelte Objekt die Methode toString() anwenden

Laut der o.a. Klammersetzung wird aus hashData das Objekt mit dem Schlüssel "birthday" ermittelt, darauf die Methode elementAt(i) aufgerufen, danach gecastet, und dann toString() aufgerufen. Das heißt, das, was bei elementAt(i) zurückkommt, ist ein String, sonst würde der Cast nicht funktionieren. Das abschließende toString() ist allerdings obsolet, weil Du ja schon einen String hast.

Schöne Grüße,

Peter