您现在的位置是:首页 > java技术交流java技术交流
spriingboot之mybatis 一对多关联查询
上善若水2020-12-15 16:50:02【java技术交流】 2707人已围观
简介在接触mybatis时,只会使用mapper提供的单表查询,关联查询需要配置xml完成,整理了使用@Results注解完成表的关联查询.参考博客:https://blog.csdn.net/zhous
在接触mybatis时,只会使用mapper提供的单表查询,关联查询需要配置xml完成,整理了使用@Results
注解完成表的关联查询.
参考博客:https://blog.csdn.net/zhoushimiao1990/article/details/99944357
表结构
我们有三张表 用户表
用户组表
用户与用户组中间表
用户表
与中间表
一对多关系用户组表
与中间表
一对多关系用户表
与用户组表
形成多对多关联本篇演示
用户表
与中间表
一对多关系查询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)
随机图文
-
php把对象foreach 循环 IteratorAggregate遍历对象更简洁更简单 php进阶
我们知道把一个对象当做数组去循环操作可以直接,实现接口Iterator实现中的current()next()key()valid()rewind(),实际上php提供系统的IteratorAggreg -
Thymeleaf onclick参数问题 如何添加引号
最近在使用Thymeleaf涉及到直接在onclick上传参,使劲百度如何在onclick添加引号,实际上,方向错了.网上其实很早就给出了正确答案!答案如下: 由于页面上查看源会出现转义的情况!如下 -
docker部署php项目 nginx+php docker搭建
1.拉取nginx镜像dockerpullnginx 2.拉取php-fpm这里我就选择php7.4版本的了dockerpullphp:7.4-fpm 3.先运行nginx试试配置有没有啥问 -
yii2 开启sql日志记录 log sql
我们在本地开发调试中经常回去看执行了哪些sql,有时通过模型构造器生成的sql并不是我们想要的,然而一条条的输出sql过于麻烦.比如可以echo News::find()->limit(1)->cre