学习JavaWeb的过程中,在遇到一些比较简单但是属性非常多的JavaBean对象时,赋值就会变得异常辛苦,且一不小心还容易写错。
基于上述理由,编写了一个为Bean对象自动赋值的简易方法。
该方法需要获得Bean对象的归属类
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;
import java.lang.reflect.Field;
import java.sql.ResultSet;
/**
* JavaBean工具类
*/
public class BeanKits
{
/**
* 创建并返回一个简单的bean对象
* @param beanClass bean对象的所属类
* @param set bean对象对应的结果集
* @param columnNum 列数
* @return bean对象
* @throws Exception
*/
public static Object createBean(Class<?> beanClass, ResultSet set, int columnNum) throws Exception
{
Object bean = beanClass.newInstance(); // 将所属类实例化
Field[] fields = beanClass.getDeclaredFields(); // 获取所属类全部声明属性
ConvertUtils.register(new DateConverter(null), java.util.Date.class); // 注册日期转换器,防止BeanUtils对值为null的Date类型报错
for (int i = 0; i < columnNum; i++)
{
String fieldName = fields[i].getName(); // 获取对应的属性名
BeanUtils.setProperty(bean, fieldName, set.getObject(fieldName)); // 对实例的对应属性进行赋值
}
return bean;
}
}