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

spriingboot之mybatis 一对多关联查询

上善若水2020-12-15 16:50:02【java技术交流】 2165人已围观

简介在接触mybatis时,只会使用mapper提供的单表查询,关联查询需要配置xml完成,整理了使用@Results注解完成表的关联查询.参考博客:https://blog.csdn.net/zhous

在接触mybatis时,只会使用mapper提供的单表查询,关联查询需要配置xml完成,整理了使用@Results注解完成表的关联查询.
参考博客:https://blog.csdn.net/zhoushimiao1990/article/details/99944357

表结构

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

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

    本篇演示 用户表中间表 一对多关系查询

    1.写个自定义sql根据id查询出中间表数据.

    @Select({"select * from user_group where user_id=#{userId}"})
    List<UserGroup> selectUserGroup(@Param("userId") int userId);
    

    运行测试

    @SpringBootTest
    class UserMapperTest {
    
    @Resource
    private UserMapper userMapper;
    
    @Test
    void test3() {
        List<UserGroup> userGroups = userMapper.selectUserGroupByUserId(1);
        userGroups.forEach(System.out::println);
    }
    }
    

    断点调试可以成功查询出结果

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

    UserVO加入属性..

    private List<UserGroup> userGroupList;
    
    @Results({
            @Result(property = "userGroupList", javaType=List.class, many =@Many(select="selectUserGroupByUserId"), 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已经能查询到结果了.
    用户表数据,中间表数据

简答的一对多demo完成…

Tags: mybatis mybatis关联查询

很赞哦! (3)

随机图文

文章评论

站点信息

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