resultMap可以将查询到的复杂数据(比如查询到几个表中数据)映射到一个结果集当中.

<resultMap id="" type="">
        <constructor><!-- 类再实例化时用来注入结果到构造方法 -->
            <idArg/><!-- ID参数,结果为ID -->
            <arg/><!-- 注入到构造方法的一个普通结果 --> 
        </constructor>
        <id/><!-- 用于表示哪个列是主键 -->
        <result/><!-- 注入到字段或JavaBean属性的普通结果 -->
        <association property=""/><!-- 用于一对一关联 -->
        <collection property=""/><!-- 用于一对多、多对多关联 -->
        <discriminator javaType=""><!-- 使用结果值来决定使用哪个结果映射 -->
            <case value=""/><!-- 基于某些值的结果映射 -->
        </discriminator>
</resultMap>

一对一xml说明

场景: 一个员工对应一个部门。在数据库设计的时候 就有两张表 sys_user(用户)和sys_dept(部门)表。
参考代码:

sys_user.java
prod-api/system/user/1

sys_user数据结构

sys_dept数据结构

sys.xml中的一对一

sys.xml中的一对多

/**

  • 根据用户编号获取详细信息
    */

@PreAuthorize("@ss.hasPermi('system:user:query')")
@GetMapping(value = { "/", "/{userId}" })
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
{

Map<String, Object> ajax = new HashMap<>();
List<SysRole> roles = roleService.selectRoleAll();
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
ajax.put("posts", postService.selectPostAll());
if (Validator.isNotNull(userId))
{
    ajax.put("user", userService.selectUserById(userId));
    ajax.put("postIds", postService.selectPostListByUserId(userId));
    ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
}
return AjaxResult.success(ajax);

}

标签: none

相关阅读

  • 测试信息
  • 开发商:阿里巴巴
  • 版本号:1.0
  • 配色:(企业家)” 推选活动结果
  • 测试信息
  • 测试信息
  • 测试信息