美文网首页
BeanUtils的用法

BeanUtils的用法

作者: 幽澜先生 | 来源:发表于2019-03-04 19:24 被阅读0次

    举例1:使用BeanUtils工具封装用户提交的数据。

    
    public static void main(String[] args)throws Exception {
    
          // 模拟用户的输入的数据如下
    
          String name = "XML基础";
    
          String author = "焦宁波";
    
          String price = "99.99";
    
          String date = "2013-01-04";
    
          Book book = new Book();
    
          // 任务是将以上的属性设置给指定的Book对象
    
          BeanUtils.setProperty(book, "name", name);
    
          BeanUtils.setProperty(book, "author", author);
    
          BeanUtils.setProperty(book, "price",price );
    
          // 查看属性是否封装好
    
          System.out.println(book);
    
    }
    
    

    发现使用上面的代码可以省略基本数据类型的转型的问题。进而提高代码的开发效率。

    举例2:自定义一个类型转换器类。

    
    public static void main(String[] args)throws Exception {
    
          // 模拟用户的输入的数据如下
    
          String name = "XML基础";
    
          String author = "焦宁波";
    
          String price = "99.99";
    
          String date = "2013-01-04";
    
    
    
          Book book = new Book();
    
    
    
          // 注册一个自己的转换器
    
          /**
    
            * converter指定具体的转换器
    
            * clazz遇到什么类型调用上面的转换器
    
            */
    
          ConvertUtils.register(
    
                  new Converter(){
    
                  // 回调方法 
    
                  @Override
    
                  public Object convert(Class type, Object value) {
    
                      if(value == null){
    
                        return null;
    
                      }
    
                      // 转换为String
    
                      String data = (String)value;
    
                      // 将指定格式的字符串转换为Date
    
                      SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    
                      Date date  = null;
    
                      try {
    
                        date = format.parse(data);
    
                        return date;
    
                      } catch (ParseException e) {
    
                        e.printStackTrace();
    
                        return null;
    
                      }
    
                  }
    
                  },
    
                  Date.class);
    
          // 任务是将以上的属性设置给指定的Book对象
    
          BeanUtils.setProperty(book, "name", name);
    
          BeanUtils.setProperty(book, "author", author);
    
          BeanUtils.setProperty(book, "price",price );
    
          BeanUtils.setProperty(book, "date",date );
    
          // 查看属性是否封装好
    
          System.out.println(book);
    
    }
    
    

    如果每次遇到一个复杂类型都需要自定义转换器,那样的话实在麻烦。大家看在开发的时候可以先查看该接口是否提供了有效的实现类。

    ConvertUtils.register(new DateLocaleConverter(), Date.class);

    其实真正的封装好的数据需要存储在数据库中,那么javabean的数据类型应该和数据库的数据类型保持一致,那么在声明持久化javabean的时候需要全部为数据库的基本数据类型。

    因此大家在JavaBean中需要导入的是java.sql.Date类,这样就直接可以将日期自动转换了。

    举例3:实现封装好的JavaBean对象的属性拷贝。

    
    // 实现属性封装数据的一个拷贝
    
    Book copy = new Book();
    
    System.out.println(copy);
    
    PropertyUtils.copyProperties(copy, book);
    
    System.out.println(copy);
    
    

    思考:如果使用BeanUtils封装用户的数据,那么也就是一个一个设置啊?岂不是也很麻烦?

    其实在真是的环境中我们可以直接获取用户提交的所有的数据信息,只需要进行遍历即可,但是为了方便快速的设置,那么可以将javabean中的属性名和用户提交的数据名保持一致。

    相关文章

      网友评论

          本文标题:BeanUtils的用法

          本文链接:https://www.haomeiwen.com/subject/mdhwuqtx.html