MyBatis Plus修改员工信息(Objects.isNull,BeanUtils.copyProperties方法的使用)

这篇博客介绍了在Java后端如何修改员工信息,包括多表修改、对象空判断及属性复制。通过User实体类和UserDomain进行数据同步,并利用BeanUtils.copyProperties方法简化赋值过程。同时提及了Objects.isNull的等效性和BeanUtils.copyProperties的注意事项。
摘要由CSDN通过智能技术生成

当需要修改一条数据的时候(比如修改一条员工信息),有以下几个流程

/*
* user是传进来需要修改的实体类:我写的是多表修改所以User是新创建的一个实体类
*(多表修改的时候,需要重新创建一个实体类来放前台传过来的所有参数,要与当前userDomain的名字一一对应,这样通过mp会自动修改值
*/
public String updateUser(User user){
	//通过Id来获取到员工的信息
	UserDomain userDomain = iUserService.getById(user.id);
	//通过Objects.isNull的方法来判断userDomain是否为空,如果是空值那说明没有查到该员工,不能修改
	if(Objects.isNull(userDomain))
		return "没有找到对应的员工信息,修改失败";
	//BeanUtils.copyProperties()第一个值为 源,第二个值为 目标
	BeanUtils.copyProperties(user,userDomain);
	//调用mp自动生成的修改方法进行修改
	iUserservice.update(userDomain);
	return "修改成功";
}

如果获取到的还有公司的信息,就同理再写一份就完成了(记得user表中的属性名一一对应,这样才可以赋值)

>>>>>>扩展>>>>>>

  1. Objects.isNull
    java.util的Objects.isNull和 object == null 从源码上看是没什么区别的,如果非要一探究竟请自行咨询度娘
  public static boolean isNull(Object obj) {
        return obj == null;
    }
  1. BeanUtils.copyProperties
    使用原因:当我们有两个具有很多相同属性的JavaBean,我们可能就会对属性逐个赋值,会出现满屏的set。如果属性再多一点可能会把手指累断,这肯定不行的。
    使用方法BeanUtils.copyProperties("源", "目标");一行就搞定了。
    但是值得提的几个点:(以下用A、B来表示源类、目标类)
    1)b中的存在的属性,a中一定要有,但是a中可以有多余的属性;
    2)a中与b中相同的属性都会被替换,不管是否有值;
    3)a、 b中的属性要名字相同,才能被赋值,不然的话需要手动set赋值;
    4)BeanUtils的CopyProperties方法需要对应的属性有getter和setter方法;
    5)如果存在属性完全相同的内部类,但是不是同一个内部类,即分别属于各自的内部类,则spring会认为属性不同,不会copy;
    6)spring和apache的copy属性的方法源和目的参数的位置正好相反,所以导包和调用的时候都要注意一下。

END

作为一个小菜鸡,这个博客就是写一些最最低级的东西, 扩展都是网上搜的摘抄的,如果有侵权请告知删除。如果你觉得写的很辣鸡,请不要怀疑,那是真的很辣鸡。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值