类Copy方法:BeanUtils.copyProperties

类Copy方法:BeanUtils.copyProperties

需求场景

比如有时候我们想要把数据库里面的数据导出到excel表中,比如想要把数据库中的用户数据导出到excel表格中;
假设我们程序代码中与数据库对接的实体类是User,用于展示到前端的实体类是UserVO,那么用于导出到excel表中的类就应该是UserDTO实体类。
因此我们导出excel的时候,肯定会牵涉到把User类转换成UserDTO实体类的操作;

具体代码

首先看下User代码 如下图:
在这里插入图片描述
接着来看下UserDTO代码,如下图:
在这里插入图片描述
最后来看下具体使用BeanUtils.copyProperties方法把User复制到UserDTO中的代码,如下图:
在这里插入图片描述

具体代码如下:

@Data
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;
}


@Data
public class UserDTO {
    private Long id;
    private String name;
    private Integer age;
}


public class ConvertClass {
    public static void main(String[] args) {
        User user1 = new User(1L, "张三", 25);
        User user2 = new User(2L, "李四", 18);
        User user3 = new User(3L, "王五", 20);
        List<User> userList = Lists.newArrayList(user1, user2, user3);

        List<UserDTO> userDTOList = Lists.newArrayList();
        for (User user : userList) {
            UserDTO userDTO = new UserDTO();
            BeanUtils.copyProperties(user, userDTO);
            userDTOList.add(userDTO);
        }


        System.out.println("UserDTO: " + userDTOList);
    }
}

具体细节说明,如下图:
在这里插入图片描述

运行结果如下图:
在这里插入图片描述

根据提供的引用内容,可以得知BeanUtils.copyProperties()方法存在于两个不同的中,分别为org.springframework.beans.BeanUtils和org.apache.commons.beanutils.BeanUtils。这两个copyProperties()方法传递参数的赋值是相反的,即在org.springframework.beans.BeanUtils中,copyProperties(A,B)的结果是将A拷贝到B;而在org.apache.commons.beanutils.BeanUtils中,copyProperties(A,B)的结果是将B拷贝到A。 因此,如果需要使用BeanUtils.copyProperties()方法,需要先确定使用的是哪个中的方法,并根据需要传递正确的参数。 下面是两个copyProperties()方法的使用示例: 1. org.springframework.beans.BeanUtils中的copyProperties()方法,将A对象的属性值拷贝到B对象中: ```python from myapp.models import A, B from django.shortcuts import get_object_or_404 from django.http import HttpResponse from org.springframework.beans import BeanUtils def my_view(request, pk): a = get_object_or_404(A, pk=pk) b = B() BeanUtils.copyProperties(a, b) b.save() return HttpResponse('Copy successful!') ``` 2. org.apache.commons.beanutils.BeanUtils中的copyProperties()方法,将B对象的属性值拷贝到A对象中: ```python from myapp.models import A, B from django.shortcuts import get_object_or_404 from django.http import HttpResponse from org.apache.commons.beanutils import BeanUtils def my_view(request, pk): a = A() b = get_object_or_404(B, pk=pk) BeanUtils.copyProperties(a, b) a.save() return HttpResponse('Copy successful!') ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr-X~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值