实体帮助类
public class BeanUtils {
//将获取的页面提交的数据放入到对应的实体类的对应属性中
public static void populate(Map<String, String> map,Object obj) {//实体类的对象
//通过对象获取Class
Class c=obj.getClass();
//遍历map集合
//先获取所有的键
for (String name : map.keySet()) {
//这里key就是表单元素的name值
//通过键获取值 value就是表单提交的数据
String value=map.get(name);
//通过表单中的name拼接出赋值的属性的对应set方法 setName(String name)
StringBuffer sb=new StringBuffer("set");
//将表单的name的首字母大写
sb.append(name.substring(0,1).toUpperCase());
//将剩下的字母拼接
sb.append(name.substring(1));
//通过方法名称获取方法对象 Method
try {
//获取属性 通过属性名称获取属性
Field field=c.getDeclaredField(name);
//解锁
field.setAccessible(true);
//通过拼接出来方法名称获取方法对象
Method method=c.getDeclaredMethod(sb.toString(), field.getType());
//将字符串转换成Integer int
Object object;
//判断当前的赋值的属性是否是日期类型 95%类型转换
if(field.getType().getName().equals("java.sql.Date")) {
object=Date.valueOf(value);
}else {
//要转换的类型 Double Integer Float 都有一个字符串参数的构造方法
//Integer i=new Integer(""); Float f=new Float("")
object=field.getType().getConstructor(String.class).newInstance(value);
}
//执行方法
method.invoke(obj, object);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
2.图