您现在的位置是:首页 > java技术交流java技术交流

spriingboot之mybatis 多对多关联查询

上善若水2020-12-15 16:58:49【java技术交流】 2274人已围观

简介上一篇演示i了一对多关联,在此基础上稍作修改就能完成多对多关联操作,入门知识点之使用注解完成多对多的配置. 表结构我们有三张表用户表用户组表用户与用户组中间表 用户表与中间表一对多关系用户组

上一篇演示i了一对多关联,在此基础上稍作修改就能完成多对多关联操作,入门知识点之使用注解完成多对多的配置.

表结构

我们有三张表 用户表 用户组表 用户与用户组中间表

  1. 用户表中间表 一对多关系
  2. 用户组表中间表 一对多关系
  3. 用户表用户组表形成多对多关联

    本篇演示 用户表用户组表表 多对多关系查询

    1.写个自定义sql根据通过中间表关联出用户组.

    @Select({"select `group`.* from user_group left join `group` on user_group.group_id=`group`.id where user_group.user_id=#{userId}"})
    List<Group> selectGroups(@Param("userId") int userId);
    

    2.写出查询用户表数据 配置查询中间表数据.

    UserVO复制user实体属性加入属性添加..
    private List<Group> groupList;
    
    @Results({
            @Result(property = "userGroupList", javaType=List.class, many =@Many(select="selectUserGroupByUserId"), column = "id"),
            @Result(property = "groupList", javaType=List.class, many =@Many(select="selectGroups"), column = "id")
    })
    @Select({"select * from user where id=#{userId}"})
    User selectUsersGroup(@Param("userId") int userId);
    
    编写代码测试结果.
    @Test
    void test2() {
        User users = userMapper.selectUsersGroup(1);
        System.out.printf(users.toString());
    }
    

    userGroupList已经能查询到结果了.
    用户表数据,中间表数据


轻松实现,其他情况请举一反三!

Tags: mybatis mybatis关联查询

很赞哦! (1)

文章评论

站点信息

  • 建站时间:2019-10-24
  • 网站程序:Thinkphp6 Layui
  • 文章统计247篇文章
  • 标签管理标签云
  • 统计数据cnzz统计
  • 微信公众号:扫描二维码,关注我们