java开发BeanUtils类解决实体对象间赋值
作者:guoyp2126 发布时间:2022-08-25 06:31:25
标签:BeanUtils,实体对象,赋值
实体对象之间相互传值,如:VO对象的值赋给Entity对象,是代码中常用功能,如果通过get、set相互赋值,则很麻烦,借助工具类BeanUtils可以轻松地完成操作。
BeanUtils依赖包导入
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。使用BeanUtils必须导入相应的jar包,BeanUtils的maven坐标为
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
示例
将前端传来的学生排名信息(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对象的值赋给实体对象,通过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
来源:https://blog.csdn.net/guoyp2126/article/details/116381031


猜你喜欢
- 1. selectKey标签查询DDLCREATE TABLE `luck_reward_info` ( `id` int NO
- 本文实例为大家分享了如何使用ItemTouchHelper实现侧滑删除和拖拽的具体代码,供大家参考,具体内容如下1. 定义一个简单bean类
- 在讲述这个模式之前,我们先看一个案例:游戏回档游戏的某个场景,一游戏角色有生命力、攻击力、防御力等数据,在打Boss前和后会不一样,我们允许
- 先略看题目:1 请简述async函数的编译方式2 请简述Task状态机的实现和工作机制3 请简述awai
- 具体不做详细介绍了,结合案例给大家做剖析,具体如下:条件“或”运算符 (||) 执行 bool 操作数的逻辑“或”运算,但仅在必要时才计算第
- 这是一个及其常见的问题,网上已经有关于这个问题的很多讨论。但是我觉得都是不求甚解,有一些还是在误导别人。下面我来说下我对这三者的理解,如有错
- 本文实例讲述了Android数据持久化之Preferences机制。分享给大家供大家参考,具体如下:在Android中,实现数据持久化有五种
- 概述Spring针对Java Transaction API (JTA)、JDBC、Hibernate和Java Persistence A
- 本文实例为大家分享了unity shader实现玻璃折射的具体代码,供大家参考,具体内容如下Shader "Unlit/rende
- 区别1.使用范围和规范不同filter是servlet规范规定的,只能用在web程序中. * 即可以用在web程序中, 也可以用于appli
- 作者: juky_huang 事件的简单解释: 事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如
- Canvas绘制文本时,使用FontMetrics对象,计算位置的坐标。public static class FontMetrics {
- 本文实例讲述了Java Swing实现窗体添加背景图片的2种方法。分享给大家供大家参考,具体如下:在美化程序时,常常需要在窗体上添加背景图片
- Android M(6.0)API 23后加入了权限请求设置,APP需要使用某些权限需要主动申请。权限分为3类,一组是Normal权限,无需
- 需求分析需求一:图片列表查询,从后台返回数据,将数据展示在页面上需求二:新增图片,将新增图书的数据传递到后台,并在控制台打印说明:此次案例的
- Java 8 中 Function 接口的介绍Java 8 中提供了一个函数式接口 Function,这个接口表示对一个参数做一些
- 目录int和Integer的区别及自动装箱和自动拆箱Integer和int的对比,如下所示:自动装箱和自动拆箱:Integer的自动拆装箱的
- 一、获取apikey,appsecret与商户号注册公众号、商户号二、获取用户的OpenId1.设置【授权回调页面域名】官方解释:用户在网页
- IO操作字节流java.io.InputStream 输入流,主要是用来读取文件内容的。java.io.OutputStream 输出流,主
- Docker是干什么的Docker 是一个基于Linux容器(LXC-linux container)的高级容器引擎,基于go语言开发,源代