wusste nicht wie ich das sonst nennen soll...
habe eine template klasse wo einfach ein array von objekten drin ist... und diverse funktonen definiert sind, die die liste handeln
lade dann aus einer datenbank eine tabelle
dabei lese ich
1) namen aus (string[])
2) datentypen aus (String[])
3) daten aus verschiedensten typen
nach bearbeitung habe ich folgendes:
1) namen aus [columnNames] (string[])
2) datentypen [columnDataTypes] aus (Class[])
3) daten [daten aus dem ResultSet] aus verschiedensten typen als Object array[]
dazu habe ich mir schon eine klasse geschrieben, die die datentypen in classes umwandelt
also der string "text" aus sql liefert mir die klasse java.lang.String zurück.
wenn ich mir alles in die cmd ausgeben lasse, kommt schon alles korrekt zurück...
mein problem ist nun...
wie kann ich dynamisch ein objekt vom typ xy generieren, ohne vorher zu wissen was xy ist?
so hab ichs versucht, klappt aber nicht
wozu ich das machen will?
somit könnte ich ALLE meine tabellen mit einer funktion schon korrekt laden lassen und müsste nur noch die generierte klasse an die funktion übergeben, ohne für 101 Tabellen (so viele sinds in meinem fall) eigene Klassen zu schreiben... (würde mir somit ne menge arbeit sparen)
habe eine template klasse wo einfach ein array von objekten drin ist... und diverse funktonen definiert sind, die die liste handeln
Code:
public class ClassTemplate {
private Object[] data
...
}
lade dann aus einer datenbank eine tabelle
dabei lese ich
1) namen aus (string[])
2) datentypen aus (String[])
3) daten aus verschiedensten typen
nach bearbeitung habe ich folgendes:
1) namen aus [columnNames] (string[])
2) datentypen [columnDataTypes] aus (Class[])
3) daten [daten aus dem ResultSet] aus verschiedensten typen als Object array[]
dazu habe ich mir schon eine klasse geschrieben, die die datentypen in classes umwandelt
also der string "text" aus sql liefert mir die klasse java.lang.String zurück.
Code:
public class DataTypeMapper {
...
public static Class getType(final String dataType) {
return typeMap.get(dataType);
}
...
}
wenn ich mir alles in die cmd ausgeben lasse, kommt schon alles korrekt zurück...
Code:
// i is der index einer for-schleife, die mir alle result-zeilen durchgeht
System.out.println("("+i+")"+this.columnNames[i]+" has type "
+db.DataTypeMapper.getType(this.columnDataTypes[i])
+" filled with data: ["+rs.getObject(this.columnNames[i]+"]");
mein problem ist nun...
wie kann ich dynamisch ein objekt vom typ xy generieren, ohne vorher zu wissen was xy ist?
so hab ichs versucht, klappt aber nicht
Code:
Object value = rs.getObject(this.columnNames[i]);
Object type = db.DataTypeMapper.getType(this.columnDataTypes[i]);
type variable = new type(value);
wozu ich das machen will?
somit könnte ich ALLE meine tabellen mit einer funktion schon korrekt laden lassen und müsste nur noch die generierte klasse an die funktion übergeben, ohne für 101 Tabellen (so viele sinds in meinem fall) eigene Klassen zu schreiben... (würde mir somit ne menge arbeit sparen)