bean复制的几种方式及beanutils的使用场景

常用的集中复制方式分别为Apache的BeanUtils和PropertyUtils,Spring的BeanUtils,Cglib的 BeanCopier。

创建一个java bean,

public class FromBean {
    private String name;
    private int age;
    private String address;
    private String idno;
    private double money;
}
public class ToBean {
    private String name;
    private int age;
    private String address;
    private String idno;
    private double money;
}

beanUtil;BeanUtils.copyProperties(toBean, frombean);

PropertyUtil:PropertyUtils.copyProperties(toBean, frombean);

springbeanUtil:org.springframework.beans.BeanUtils.copyProperties(frombean,toBean);

cglib:BeanCopier bc = BeanCopier.create(FromBean.class, ToBean.class,false);

  1. bc.copy(frombean, toBean, null);

  2. 性能:

从整体的表现来看,Cglib的BeanCopier的性能是最好的无论是数量较大的1万次的测试,还是数量较少10次,几乎都是趋近与零损耗,Spring是在次数增多的情况下,性能较好,在数据较少的时候,性能比PropertyUtils的性能差一些。PropertyUtils的性能相对稳定,表现是呈现线性增长的趋势。而Apache的BeanUtil的性能最差,无论是单次Copy还是大数量的多次Copy性能都不是很好。

BeanUtils工具一般可以方便javaBean的哪些操作?

1)beanUtils 可以便于对javaBean的属性进行赋值。

2)beanUtils 可以便于对javaBean的对象进行赋值。

3)beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。

利用元数据和BeanUtil 编写通用的 更新方法 和 查询方法

                sql:要预编译的查询语句

    values:把sql语句的参数放到这个数组中

    clazz:最后集合中返回的javaBean的类型

 

参考:https://blog.csdn.net/lan861698789/article/details/52396676

https://www.cnblogs.com/vmax-tam/p/4159985.html

 

你可能感兴趣的:(bean复制的几种方式及beanutils的使用场景)