(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>
本文详细介绍了在使用MyBatis框架时,遇到的实体类属性与数据库字段名称不一致导致的数据返回NULL问题。提供了三种解决方案:修改实体类属性名、在mapper.xml中使用字段别名、利用resultMap进行字段与属性映射。
数据库查询正常,但是后端返会NULL,导致前端无法正常显示数据&spm=1001.2101.3001.5002&articleId=106290753&d=1&t=3&u=37c305f555924891abbc25dc9466e2aa)
579

被折叠的 条评论
为什么被折叠?



