BeanUtil

来源:互联网 发布:wings战队 知乎 编辑:程序博客网 时间:2024/05/17 23:58

BeanUtils

BeanUtils是Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作.

可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中.

使用时需要导入jar包:

​ commons-beanutils-1.8.3.jar

​ commons-logging-1.1.1.jar

常用工具类有两个:BeanUtils :用于封装数据

​ ConvertUtils :用于处理类型转换.

常用API:

//功能1:封装表单数据@Testpublic void demo01() throws Exception{  //将map数据封装给user  Map<String,String[]>properties=new HashMap<String,String[]>();  propeties.put("username",new String[]{"jack"});  propeties.put("password",new String[]{"1234"});  properties.put("age",new Sting[]{"18"});    User user=new User();  //封装数据  BeanUtils.populate(user,properties);  System.out.println(user);} 
//功能2:封装表单数据,使用类型转换器@Testpublic void demo02() throws Exception{  //转换器  Map<String,String[]>properties=new HashMap<String,String[]>();  propeties.put("username",new String[]{"jack"});  propeties.put("password",new String[]{"1234"});  properties.put("age",new Sting[]{"18"});  properties.put("birthday",new String[]{"2012-12-21"});  User usre= new User();  //1 创建BeanUtils提供时间转换器  DateConverter dateConverter = new DateConverter();  //2 设置需要转换的格式  dateConverter.setPattern("yyyy-MM-dd");  //3 注册转换器  ConvertUtils.register(dateConverter,java.util.Date.class);  //封装数据  BeanUtils.populate(user,properties);  System.out.println(user);
//功能3:编写工具类public class MyBeanUtils{/***将数据封装给JavaBean,支持时间类型转换*/  public static void populate(Object user,Map<String,String[]>properties){        try{          //1 创建BeanUtils提供时间转换器          DateConverter dateConverter = new DateConverter();          //2 设置需要转换的格式          dateConverter.setPatterns(new String[]{"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"});          //注册转换器          ConvertUtils.register(dateConverter,java.util.Date.class);          //封装数据          BeanUtils.populate(user,properties);        } catch (Exception e) {           throw new RuntimeException(e);        }    }  }

工具类的使用:

User user=new user();

MyBeanUtils.populate(user,properties);

高级工具类:

/***高级封装,不需要new javabean**/public static <T> T populate(Class<T> beanClass,Map<String,String[]> properties){    try{      //1 使用反射创建实例      T bean = beanClass.newInstance();      //2.1 创建BeanUtils提供时间转换器      DateConverter dateConverter = new DateConverter();      //2.2 设置需要转换的格式      dateConverter.setPatterns(new String[]{"yyyy-MM-dd","yyyy-MM-dd HH:mm:ss"});      //2.3 注册转换器      ConvertUtils.register(dateConverter,java.utils.Date.class);      //3 封装数据      BeanUtils.populate(bean,properties);      return bean;    } catch (Exception e) {       throw new RuntimeException(e);    }}

工具类使用2:

User user = MyBeanUtils.populate(User.class,properties);


原创粉丝点击