Generiert aus den Feldern einer Klasse Headers für ein CSV-Testdatenfile:
public static void generiereCVSHeaders() {
String header = "br0047;";
Field[] fieldsInput = Testvektor.class.getDeclaredFields();
for (Field field : fieldsInput) {
header += field.getName() + ";";
}
System.out.println(header);
}
Holt als allen Feldern eines Testobjektes "destObject" die entprechenden Werte (d.h. die mit dem gleichen Namen wie das Feld) aus einem JDBC-ResulSet und setzt diesen Wert dann auch im entsprechenden Feld:
/**
* Holt für alle Attribute des destObjects die gleichnamigen Werte aus den Spalten des resultSets und füllt sie im
* destObject ab.
* @param resultSet
* Quelle der Daten
* @param destObject
* Ziel der Daten
* @throws SQLException
* wird u.a. geworfen, wenn das destObject Attribute hat, welche im resultSet nicht vorkommen.
* @throws IllegalAccessException
*/
private static void mapDBcolumsToFieldsOfObject(ResultSet
resultSet, Object destObject) throws SQLException,
IllegalAccessException {
Field[] fields =
destObject.getClass().getDeclaredFields();
for (Field field : fields) {
int column =
resultSet.findColumn(field.getName());
Class<?> type = field.getType();
field.setAccessible(true);
// kümmert
sich um "null" Werte...
if (resultSet.getString(column) != null && resultSet.getString(column).equals("null")) {
field.set(destObject, null);
} else if (type == Integer.class || type.getName() == "int") {
field.set(destObject,
resultSet.getInt(column));
} else if (type == String.class) {
field.set(destObject,
resultSet.getString(column));
} else if (type == Double.class) {
field.set(destObject,
resultSet.getDouble(column));
} else if (type == Date.class) {
field.set(destObject,
resultSet.getDate(column));
} else if (type == Short.class) {
field.set(destObject,
resultSet.getShort(column));
} else if (type == Boolean.class || type.getName() == "boolean") {
field.set(destObject,
resultSet.getBoolean(column));
} else {
throw new IllegalArgumentException("noch nicht unterstütztes Mapping: " + type.getCanonicalName());
}
}
}
Keine Kommentare:
Kommentar veröffentlichen