1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
public T fill(ResultSet res)
{
try
{
Method m = null; String methodName = "";
ResultSetMetaData metadata = res.getMetaData();
Class<?> c = Class.forName("beans."+this.getClassName());
Object instance = c.getConstructor().newInstance();
for(int i = 0; i < metadata.getColumnCount(); i++)
{
int index = i+1;
StringBuilder result = new StringBuilder(metadata.getColumnName(index));
result.replace(0, 1, result.substring(0, 1).toUpperCase());
methodName = "set"+result.toString();
switch(metadata.getColumnType(index))
{
//Integer
case 4 :
m = c.getMethod(methodName, int.class);
m.invoke(instance, res.getInt(index));
break;
//Float
case 7 :
m = c.getMethod(methodName, float.class);
m.invoke(instance, res.getFloat(index));
break;
//String
case 12 :
m = c.getMethod(methodName, String.class);
m.invoke(instance, res.getString(index));
break;
//Boolean
case -7 :
m = c.getMethod(methodName, int.class);
m.invoke(instance, res.getInt(index));
break;
//Timestamp
case 93 :
m = c.getMethod(methodName, java.util.Date.class);
m.invoke(instance, res.getDate(index));
break;
}
}
return (T) instance;
}
catch (Exception e) {
Logs.error("ECHEC de remplissage de l'objet " + this.getClassName() + " : " + e.getMessage());
return null;
}
} |
Partager