反射+注解实现数据库Map转换成实体Map工具类

本文介绍如何在需求变化时,将原本返回List<User>改为返回List<Map>,同时解决因数据库字段命名与实体类属性命名不一致导致的问题。通过反射和注解,创建一个工具类,实现Map到实体类属性的自动映射,确保前端能正确解析数据。注意点包括正确获取类、处理get方法与属性名关联、遍历Map的方式、注解值与数据库字段对应以及传参类型的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现场景

因为原始的需求是从数据库中查询出来的一个实体字段

比如一个User user = new User()的实体类,有userName,userId两个字段。

然后我返回一个list给前端,List<User> list 

现在需求变化,我需要添加一个额外的字段,比如userCompany,就没有办法使用刚才那个返回对象的方法

现在直接从数据库中多表查询一个Map 如下

("user_name","curry"),("user_id","00030"),("user_company","worriors")

我现在返回给前端的list就变成 List<Map> list

又因为数据库的字段命名方式为下划线分割,而实体类的是驼峰命名

这样的Map传给前端,因为前端取的是原先实体类的key,现在key发生了变化,会导致前端报错

而这添加一个字段,又是一个比较常用的需求,所以想写一个工具来进行适配。

实现

实现前提

1.项目中的实体类应严格按照javabean的标准来生成;

2.属性命名使用驼峰命名法;

3.get方法使用注解

实现开始

    static <T> Map convertMapToBean(M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值