我们在使用beanutils.populate()封装参数时,如果封装的字符串是空,在转换成date时会出现以上异常,此时可以在工具类中添加静态代码块即可解决:注意导入beanutils 包工具类解决此问题:
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.SqlDateConverter;
import javax.sql.DataSource;
import java.util.Map;
public class JdbcUtil {
//读取C3P0配置文件
private static DataSource dataSource = new ComboPooledDataSource();
public static DataSource getDataSource() {//得到c3p0配置信息
return dataSource;
}
//处理时间日期的处理
static {
ConvertUtils.register(new SqlDateConverter(null), java.sql.Date.class);
ConvertUtils.register(new SqlDateConverter(null), java.util.Date.class);
}
//将提交的参数map封装进bean类中.
public static T mapToBean(Class c, Map map) {
try {
T t = c.newInstance();
BeanUtils.populate(t, map);
return t;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
如有不足请多多指正