zoukankan      html  css  js  c++  java
  • 13.BeanUtils组件-基础.md


    目录

    用途

    可以用来对JavaBean的各种增强操作

    基本属性的设置

    package per.liyue.code.beanutildemo;
    import java.util.Date;
    public class Person {
        private int id = 0;
        private String name = null;
        
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }  
    
    
    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
        @Test
        public void demo1() throws IllegalAccessException, InvocationTargetException {
            /*
             * 1.对JavaBean的操作
             */
            // 基本的对象属性设置
            Person p = new Person();
            p.setId(1);
            p.setName("张三");
            System.out.println("原始操作:" + p.getName());
            
            //1.BeanUtils两种方式设置属性
            Person pU = new Person();
            BeanUtils.copyProperty(pU, "id", 2);
            BeanUtils.setProperty(pU, "name", "李四");
            System.out.println("使用BeanUtils设置属性:" + pU.getName());
        }
    
    }  
    
    

    Map数据的拷贝

    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
        @Test
        public void demo1() throws IllegalAccessException, InvocationTargetException {
           
    
            //2.将Map中的数据拷贝到对象中
            Map<String, Object>map = new HashMap<>();
            //这里的key要保证和BeanUtils中拷贝的属性名称,类字段名称一致才可以!!
            map.put("name", "王五");
            Person pM = new Person();
            BeanUtils.populate(pM, map);
            System.out.println("使用BeanUtils拷贝Map数据:" + pM.getName());
        }
    
    }  
    
    

    对象的拷贝

    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
        @Test
        public void demo1() throws IllegalAccessException, InvocationTargetException {
    
    
            
            //.BeanUtils拷贝对象
            Person pC = new Person();
            //没有日期类型时候可以
            BeanUtils.copyProperties(pC, pU);
            System.out.println("使用BeanUtils拷贝对象:" + pC.getName());
        }
    
    }  
    
    

    转换器

    package per.liyue.code.beanutildemo;
    import java.util.Date;
    public class PersonDate {
        private String name = null;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        
        //日期类型
        private Date birthday;
        public Date getBirthday() {
            return birthday;
        }
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
        
        @Override
        public String toString() {
            // TODO Auto-generated method stub
            return "这个人名字:" + name + " 生日" + getBirthday();
        }
    }
    
    package per.liyue.code.beanutildemo;
    import java.lang.reflect.InvocationTargetException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.Map;
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
    import org.junit.Test;
    public class BeanUtilsDemo {
         
        @Test
        public void Demo2() throws IllegalAccessException, InvocationTargetException {
            /*
             * 日期类型转换
             */
            PersonDate pD = new PersonDate();
            String name = "赵二";
            String birthday = "1987-01-01";
            //注册类型转换器
            ConvertUtils.register(new DateLocaleConverter(), Date.class);
            //注册完成后拷贝属性
            /*
             * 注意:1.必须类的属性是public
             *      2.这里对于空字符串是没有处理的,需要自己额外加代码
             */
            if ((birthday == null) || ("".equalsIgnoreCase(birthday))) {
                return;
            }
            BeanUtils.copyProperty(pD, "name", name);
            BeanUtils.setProperty(pD, "birthday", birthday);
            System.out.println(pD);
            
        }
    }  
    
    
  • 相关阅读:
    centos7.3 安装 mysql5.7.13
    linux下MySQL的启动与访问
    使用jquery修改display属性
    浏览器在线预览pdf、txt、office文件
    查看java的jar包源码
    邮件群发器
    公司招聘asp.net程序员(已过期)
    javascript面向对象,实现namespace,class,继承,重载
    javascript window.close() 去掉那讨厌的确认对话框
    如果注定要分别
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512685.html
Copyright © 2011-2022 走看看