zoukankan      html  css  js  c++  java
  • beanUtils的用法

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

     1 public static void main(String[] args)throws Exception {
     2 
     3        // 模拟用户的输入的数据如下
     4 
     5        String name = "XML基础";
     6 
     7        String author = "焦宁波";
     8 
     9        String price = "99.99";
    10 
    11        String date = "2013-01-04";
    12 
    13        Book book = new Book();
    14 
    15        // 任务是将以上的属性设置给指定的Book对象
    16 
    17        BeanUtils.setProperty(book, "name", name);
    18 
    19        BeanUtils.setProperty(book, "author", author);
    20 
    21        BeanUtils.setProperty(book, "price",price );
    22 
    23        // 查看属性是否封装好
    24 
    25        System.out.println(book);
    26 
    27 }

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

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

     1 public static void main(String[] args)throws Exception {
     2 
     3        // 模拟用户的输入的数据如下
     4 
     5        String name = "XML基础";
     6 
     7        String author = "焦宁波";
     8 
     9        String price = "99.99";
    10 
    11        String date = "2013-01-04";
    12 
    13       
    14 
    15        Book book = new Book();
    16 
    17       
    18 
    19        // 注册一个自己的转换器
    20 
    21        /**
    22 
    23         * converter指定具体的转换器
    24 
    25         * clazz遇到什么类型调用上面的转换器
    26 
    27         */
    28 
    29        ConvertUtils.register(
    30 
    31               new Converter(){
    32 
    33               // 回调方法  
    34 
    35               @Override
    36 
    37               public Object convert(Class type, Object value) {
    38 
    39                   if(value == null){
    40 
    41                      return null;
    42 
    43                   }
    44 
    45                   // 转换为String
    46 
    47                   String data = (String)value;
    48 
    49                   // 将指定格式的字符串转换为Date
    50 
    51                   SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    52 
    53                   Date date  = null;
    54 
    55                   try {
    56 
    57                      date = format.parse(data);
    58 
    59                      return date;
    60 
    61                   } catch (ParseException e) {
    62 
    63                      e.printStackTrace();
    64 
    65                      return null;
    66 
    67                   }
    68 
    69               }
    70 
    71               },
    72 
    73               Date.class);
    74 
    75        // 任务是将以上的属性设置给指定的Book对象
    76 
    77        BeanUtils.setProperty(book, "name", name);
    78 
    79        BeanUtils.setProperty(book, "author", author);
    80 
    81        BeanUtils.setProperty(book, "price",price );
    82 
    83        BeanUtils.setProperty(book, "date",date );
    84 
    85        // 查看属性是否封装好
    86 
    87        System.out.println(book);
    88 
    89 }

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

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

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

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

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

    1 // 实现属性封装数据的一个拷贝
    2 
    3 Book copy = new Book();
    4 
    5 System.out.println(copy);
    6 
    7 PropertyUtils.copyProperties(copy, book);
    8 
    9 System.out.println(copy);

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

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

  • 相关阅读:
    redis
    linux systemd
    分布式高可用架构演进
    c++ 多线程 信号量简单使用
    JAVA上传文件到FTP上
    JAVA字符串去掉html代码
    jQuery判断复选框是否勾选
    SpringBoot全局异常处理
    SpringBoot统一日志打印
    JAVA加解密之DES
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3720348.html
Copyright © 2011-2022 走看看