Databases Reference
In-Depth Information
eins und nicht wie der Informatik sonst üblich mit der Zahl null
beginnt.
Es stehen für jeden Datenbank-Datentypen zugehörige Java-
Typen zur Verfügung, wobei es im Detail, z. B. bei der Werte-
genauigkeit, Probleme geben kann. Wird ein nicht ganz pas-
sender Datentyp gewählt, findet im ResultSet automatisch eine
Konvertierung statt. Zum Datentypen INTEGER der Datenbank
gehört z.B. die Klasse java.math.BigDecimal , mit der auch
sehr große Zahlen verwaltet werden können. Auf solchen Spal-
ten ist aber auch der Aufruf rs.getInt(spalte) erfolgreich.
Als allgemeinste Methode steht rs.getObject(spalte) zur
Verfügung, wobei man das erhaltene Objekt später konvertie-
ren muss. Eine häufig genutzte Variante ist das Einlesen belie-
biger Werte mit rs.getString(spalte) , da jedes Objekt in
Java durch seine toString() -Methode in einen String um-
wandelbar ist. Dieser String kann dann mit Java-Methoden ana-
lysiert werden.
Bei der Analyse der Ergebnisse muss beachtet werden, dass
auch NULL-Werte in der Tabelle stehen können. Da z. B. eine
getInt()-Methode immer einen int-Wert liefert, kann man nicht
erkennen, ob die Zahl Null oder der Datenbankwert NULL ge-
lesen wurde. Dazu kann man nach dem Lesen eines Wertes den
Aufruf rs.wasNull() nutzen, der genau dann true liefert,
wenn bei der letzten Leseaktion ein NULL-Wert gelesen wurde.
Die vorgestellten Ideen werden in der folgenden Methode zu-
sammengefasst, dabei werden die eingelesenen Daten immer
als Strings angenommen, da jeder Datentyp in einen String
konvertierbar ist.
public void anfragen(String anfrage){
if (con==null){
System.out.println("keine Verbindung");
return;
}
try {
Statement stmt=con.createStatement();
ResultSet rs= stmt.executeQuery(anfrage);
//Matadaten des Anfrageergebnisses
ResultSetMetaData rsmd= rs.getMetaData();
int spalten=rsmd.getColumnCount();
for(int i=1;i<=spalten;i++) // nicht i=0
System.out.println(i+". Spaltenname: "
+rsmd.getColumnName(i)
+"\n Spaltentyp: "
Konvertierungs-
probleme beach-
ten
289
Search WWH ::




Custom Search