java减少代码书写――数据访问层Wrapper―获取数据及分页―反射2(四)

2014-11-24 09:24:10 · 作者: · 浏览: 7
String setMethodName = "set" + firstLetter + fieldName.substring(1);

// // 获得和属性对应的getXXX()方法
// Method getMethod = classType.getMethod(getMethodName,new Class[] {});

// 获得和属性对应的setXXX()方法,使用filed对象的类型
Method setMethod = classType.getMethod(setMethodName,new Class[] { field.getType() });

// // 调用原对象的getXXX()方法:指定调用的对象和方法的参数值列表
// Object value = getMethod.invoke(t, new Object[] {});
// System.out.println(fieldName + ":" + value);
// 调用拷贝对象的setXXX()方法:指定调用的对象和参数值列表(注意必须是Object类型)
String type=field.getType().getName();
type = type.substring(type.lastIndexOf(".")+1,type.length());
if(type.toString().equals("int")){
if(rs.getInt(field.getName())!=0){
setMethod.invoke(t,rs.getInt(field.getName()));
}
}
if(type.toString().equals("String")){
if(rs.getString(field.getName())!=null){
setMethod.invoke(t,rs.getString(field.getName()));
}
}
if(type.toString().equals("Date")){
if(rs.getDate(field.getName())!=null){
setMethod.invoke(t,rs.getTimestamp(field.getName()));
}
}
if(type.toString().equals("Double")){
if(rs.getDouble(field.getName())!=0){
setMethod.invoke(t,rs.getDouble(field.getName()));
}
}

}
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return t;
}