当前位置:   article > 正文

Mybatis中解决实体类和表字段映射问题解决方法_若依解决mybatis字段映射问题

若依解决mybatis字段映射问题

  在Mybatis中有时候可能会出现我们表字段和实体类名映射不一致的问题,这样查询的数据往往是为null。
  假设现在有一张表如下:
在这里插入图片描述
  该表对应的实体类如下:

@Data
public class Emp {
    // 员工编号
    private Integer id;

    // 员工姓名
    private String name;

    // 员工年龄
    private Integer age;

    // 所属部门
    private Integer deptId;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

  我们简单写一个查询语句如下:
在这里插入图片描述
  我们请求方法,得到结果如下:
在这里插入图片描述
   可以看deptId属性是为空的,此时表字段和实体类字段是没有映射上导致的问题。

总结以下方法

1、将不对应的字段起别名

在这里插入图片描述
  将dept_id起别名之后和实体类字段对应,即可查询。
  (不推荐,如果数据库字段多,比较麻烦)

2、定义resultMap

  此标签可以解决数据库字段与实体类的属性不一致时,使用该标签进行一一映射。
在这里插入图片描述
  我们在select标签中指定上resultMap的唯一标识(empPojo)即可。
resultMap标签的属性含义如下:
1、id:唯一标识
2、type:表示对应哪个实体类
3、column:表示数据库字段的名称
4、property:表示实体类字段的名称

3、Mybatis开启驼峰命名

  按照规范命名,我们将数据库字段的下划线的后一个字母转成大写。
  例如:数据库的字段为dept_id,那么java实体类中为deptId。
  在yml或properties中配置开启驼峰命名:

mybatis:
  configuration:
    map-underscore-to-camel-case: true # 开启驼峰命名 (下划线)
  • 1
  • 2
  • 3

以上三种解决办法都可以,各取所需

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/625705
推荐阅读
相关标签
  

闽ICP备14008679号