为了简化代码,需要用到两个包
beanutils需要依赖logging所以两个都导入
工具类
package com.DC.spring.demo1;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
public class Utils {
@SuppressWarnings("rawtypes")
public static <T> T toBean(Map map, Class<T> clazz) {
try {
// 通过反射获取对象实例
T bean = clazz.newInstance();
//转换日期类型
ConvertUtils.register(new DateConverter(), java.util.Date.class);
BeanUtils.populate(bean, map);
return bean;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
Map<String,Object> map = new HashMap<String, Object>();
map.put("sid", "15");
map.put("sname", "王刚");
map.put("ssex", "男");
map.put("score", 87);
User user = toBean(map, User.class);
System.out.println(user);
}
}
测试类
package com.DC.spring.demo1;
public class User {
private String sid;
private String sname;
private String ssex;
private int score;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getSsex() {
return ssex;
}
public void setSsex(String ssex) {
this.ssex = ssex;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
@Override
public String toString() {
return "User [sid=" + sid + ", sname=" + sname + ", ssex=" + ssex
+ ", score=" + score + "]";
}
}
配合QueryRunner的query方法,与ScannerHandler(),BeanHandler(),BeanListHandler(),MapListHandler()等,可以实现数据库数据对对象数据的快速封装,简化代码