如何做到表中字段的值用查询接口中实体类不对应的属性名来接收

我们可能会遇到这样的情况,某个查询接口如getAllUser获取所有用户信息的接口。其中有两个字段name和age,正常我们的接口查询后就是返回"name":“xxx”,“age”:"xx"这类型的数据。但是前端说我需要name统一变成key,age统一变成value这种形式,也就是说我们用来接收查询结果的实体类中的属性名和表的字段名不对应,如果我们单纯的该实体类中的属性名,就会出现查询出一堆空的{}。

这其实就是mapper.xml中的查询结果和接收实体类中的属性没有映射到的缘故
要实现mapper.xml中查询结果的name和age字段映射到实体类UserEntity中的aa和bb属性,可以通过在mapper.xml中使用resultMap来指定结果映射规则。以下是具体步骤:

  1. 在mapper.xml文件中定义一个resultMap,指定查询结果字段和实体类属性的映射关系:
<resultMap id="userResultMap" type="com.example.UserEntity">
    <result column="name" property="aa"/>
    <result column="age" property="bb"/>
</resultMap>
  1. 在查询语句中引用定义的resultMap,并指定查询结果的映射规则:
<select id="getUserInfo" resultMap="userResultMap">
    SELECT name, age
    FROM user_table
    WHERE id = #{userId}
</select>
  1. 在实体类UserEntity中定义对应的属性aa和bb,并提供相应的getter和setter方法:
public class UserEntity {
    private String aa; // 对应name字段
    private int bb; // 对应age字段

    // getter和setter方法
    public String getAa() {
        return aa;
    }

    public void setAa(String aa) {
        this.aa = aa;
    }

    public int getBb() {
        return bb;
    }

    public void setBb(int bb) {
        this.bb = bb;
    }
}

通过以上步骤,可以实现mapper.xml中查询结果的name和age字段映

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值