网站首页 > 基础教程 正文
在我们工作过程中,前端同事有些时候,无法以实体类的方式传给我们请求报文,而是以类似于键值对的集合传输一个对象信息,那么我们如何拿到这个键值对,为对象赋值呢?
首先,我们创建一个数据库表对应的实体类
@Data
public class UserInfo {
private String name;
private Integer age;
private String idCard;
private String gender;
private String birthday;
}
然后,创建一个关系映射类
@Data
public class FieldInfo {
// 字段名称
private String code;
// 字段值
private Object value;
}
接下来,我们进行测试
public static void main(String[] args) {
FieldInfo info_1 = new FieldInfo();
info_1.setCode("name");
info_1.setValue("夏目");
FieldInfo info_2 = new FieldInfo();
info_2.setCode("age");
info_2.setValue(17);
FieldInfo info_3 = new FieldInfo();
info_3.setCode("gender");
info_3.setValue("男");
// 模仿 前端传来的 映射集合
List<FieldInfo> list = new ArrayList<>();
list.add(info_1);
list.add(info_2);
list.add(info_3);
// 数据库,对应的实体类
UserInfo userInfo = new UserInfo();
// 获取全部field数组
Field[] declaredFields = userInfo.getClass().getDeclaredFields();
for (Field field: declaredFields) {
field.setAccessible(true);
try {
for (FieldInfo info : list) {
// field.getName() 获取的是UserInfo对象的字段名称,例如,name,age
if (field.getName().equals(info.getCode())) {
// 进行赋值
field.set(userInfo,info.getValue());
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
// 最后我们把实体类 打印出来看看
System.out.println(userInfo);
}
最终的输出结果:
UserInfo(name=夏目, age=17, idCard=null, gender=男, birthday=null)
然后,这个实体类就有值了,我们就可以,update或者insert等等操作啦!
end
今日处暑,天气转凉,小伙伴们要早晚,要注意加衣服啦!
- 上一篇: html面试题
- 下一篇: css盒模型、元素类型
猜你喜欢
- 2024-11-20 java Swing用户界面组件文本输入:文本域+密码域+格式化的输入域
- 2024-11-20 如果没有JS框架该怎么办
- 2024-11-20 12、HTML5新特性
- 2024-11-20 CSS 样式重置的两种方法
- 2024-11-20 React ant组件表单数据使用setState更新,前端不渲染问题
- 2024-11-20 行内元素和块级元素-html教程
- 2024-11-20 ASP.NET MVC – 样式和布局简介
- 2024-11-20 Java动态字节技术之Javassist
- 2024-11-20 Web前端程序员应该遵循的15个开发原则
- 2024-11-20 和无用代码说再见!阿里文娱无损代码覆盖率统计方案
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)