(SSM)数据库查询正常,但是后端返会NULL,导致前端无法正常显示数据

本文详细介绍了在使用MyBatis框架时,遇到的实体类属性与数据库字段名称不一致导致的数据返回NULL问题。提供了三种解决方案:修改实体类属性名、在mapper.xml中使用字段别名、利用resultMap进行字段与属性映射。

(SSM)数据库查询正常,但是后端返会NULL,导致前端无法正常显示数据

我的数据库字段名如下:
在这里插入图片描述

对应的实体类的属性名如下:

在这里插入图片描述

用数据库直接查询表数据返会数据正常,用mybatis查询正常。但是将数据放到后端与实体类对应,并显示在前端时,发现错误,只获取到了gender的值,其余值全为null;

后来发现原来是因为实体类属性名和数据库表的字段名不一致,导致不能一一对应。(gender属性和数据库字段名一致,故获取正常。)

解决方法有以下几种:

一 、修改实体类的字段名,使之与数据库表的字段名一致。

二、mybatis 的mapper.xml文件中,将select语句中的字段名取别名,让字段名的别名和实体类中的属性名一致

三、通过resultMap来映射字段名和实体类属性名的一一对应关系。(使用Mybatis提供的解决方法):

注意:resultMap不能和resultType一起使用

如下例子:

<select id="getEmployees" resultMap="getEmployeesResultMap">
 
SELECT * FROM t_diamond_allinfo_gia WHERE cer_number = #{cerNumber}
 
</select>
 
<!-- 通过resultMap映射实体类和表字段的关系 -->
 
<resultMap type="Employees" id="getEmployeesResultMap">
 
<!-- 用id属性来映射主键字段 -->
 
<id property="empId" column="emp_id"/>
 
<!-- 用result属性来映射非主键字段 -->
 
<result property="empName" column="emp_name"/>
 
<result property="empEmail" column="emp_email"/>
 
<result property="gender" column="gender"/>
 
<result property="departmentId" column="department_id"/>
 
</resultMap>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值