Mybatis中resultMap的使用

一、resultMap映射不规范字段
首先建立两个数据表emp(员工表)和dept(部门表),两者对应关系为,员工和部门之间为一对一关系,部门和员工之间为一对多关系。查询mysql数据库中数据表如下图所示。
在这里插入图片描述
在这里插入图片描述
然后在eclipse中创建maven工程,添加mybatis相关依赖,创建Emp、Dept两个POJO对象,代码如下:
@Getter//使用lombok标签自动生成Getter、Setter、ToString方法
@Setter
@ToString
public class Emp {
private Integer empId;
private String empName;
private Integer emp_dept_id;
}

@Getter
@Setter
@ToString
public class Dept {
private Integer deptId;
private String deptName;
}
当POJO对象与数据库中字段名不一致时,我们可以通过resultMap自定义映射,xml文件中代码如下:

<
select标签中的resultMap值应和resultMap标签中的id值一致,id标签为主键,result标签为普通字段,column对应的值为数据库表中的值,property对应的值为自定义映射的值在此即POJO对象的值。然后通过测试查询所得控制台结果如下:
在这里插入图片描述
二、resultMap用于关联查询或嵌套查询
我们创建两个EmpVO、DeptVO值对象,代码如下:
@Getter
@Setter
@ToString
public class EmpVO {
private Integer empId;
private String empName;
private Dept dept;
}

@Getter
@Setter
@ToString
public class DeptVO {
private Integer deptId;
private String deptName;
private List emps;
}
当查询EmpVO对象时,为一对一关联查询,映射xml代码如下:
在这里插入图片描述
当一对一查询时使用association标签,标签内封装的信息为关联对象信息,在此即为部门信息(包含部门id和name)。通过测试类控制台查询结果如下:
在这里插入图片描述
当查询DeptVO对象时,为一对多关联查询,映射xml代码如下:
在这里插入图片描述
当一对多查询时使用collection标签,标签内封装的信息为关联对象信息,在此即为员工信息(包含员工id、name、emp_dept_id)。通过测试类控制台查询结果如下:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值