java开发BeanUtils类解决实体对象间赋值

网友投稿 256 2022-12-02

java开发BeanUtils类解决实体对象间赋值

实体对象之间相互传值,如:VO对象的值赋给Entity对象,是代码中常用功能,如果通过get、set相互赋值,则很麻烦,借助工具类BeanUtils可以轻松地完成操作。

BeanUtils依赖包导入

BeanUtils 是 Apache commons组件的成员之一,主要用于简化javaBean封装数据的操作。使用BeanUtils必须导入相应的jar包,BeanUtils的maven坐标为

commons-beanutils

commons-beanutils

1.9.4

示例

将前端传来的学生排名信息(StudentVo对象)分别赋给学生对象(StudentEntity)和排名对象(RankingEntity),这三个类代码如下:

@Data

public class StudentVo {

private String sno;

private String sname;

private Integer ranking;

private String schoolTerm;

public String toString(){

return "studentVo对象的值 sno:"+getSno()+" sname:"+getSname()+" ranking:"+getRanking().toString()+" schoolTerm:"+getSchoolTerm();

}

}

@Data

public class StudentEntity {

private String sno;

private String sname;

private Integer sage;

public String toString(){

return "studentEntity对象的值 sno:"+getSno()+" sname:"+getSname()+" sage:"+getSage();

}

}

@Data

public class RankingEntity {

private String sno;

private Integer ranking;

private String schoolTerm;

public String toString(){

return "rankingEntity对象的值 学号:"+getSno()+" 名次:"+getRanking().toString()+" 学期:"+getSchoolTerm();

}

}

将VO对象的值赋给实VqVPPusaFh体对象,通过BeanUtils.copyProperties(目标,源),将源实体对象的数据赋给目标对象,只把属性名相同的数据赋值,目标中的属性如果在源中不存在,给null值,测试代码如下:

public class App

{

public static void main( String[] args ) throws InvocationTargetException, IllegalAccessException {

StudentVo studentVo = new StudentVo();

studentVo.setSno("1");

studentVo.setRanking(20);

studentVo.setSname("胡成");

studentVo.setSchoolTerm("第三学期");

System.out.println(studentVo.toString());

StudentEntity studentEntity = new StudentEntity();

BeanUtils.copyProperties(studentEntity,studentVo);

System.out.println(studentEntity.toString());

RankingEntity rankingEntity = new RankingEntity();

BeanUtils.copyProperties(rankingEntity,studentVo);

System.out.println(rankingEntity.toString());

}

}

运行结果:

StudentVo 中不存在sage属性,获得studentEntity对象的sage的值为null

以上就是java开发BeanUtils类解决实体对象间赋值的详细内容,更多关于使用BeanUtils工具类解决实体对象间赋值的资料请关注我们其它相关文章!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:单纯形法
下一篇:如何在网页中添加 GitHub Corners
相关文章

 发表评论

暂时没有评论,来抢沙发吧~