广告
返回顶部
首页 > 资讯 > 精选 >MybatisPlus如何实现对象嵌套关联查询一对多List集合查询
  • 908
分享到

MybatisPlus如何实现对象嵌套关联查询一对多List集合查询

2023-06-30 15:06:36 908人浏览 独家记忆
摘要

这篇文章主要讲解了“mybatisPlus如何实现对象嵌套关联查询一对多List集合查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MybatisPlus如何实现对象嵌套关联查询一对多Li

这篇文章主要讲解了“mybatisPlus如何实现对象嵌套关联查询一对多List集合查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MybatisPlus如何实现对象嵌套关联查询一对多List集合查询”吧!

对象嵌套关联查询一对多List集合查询

mybatis嵌套关联查询如下

由于我的是一对集合查询,所以我有两个类。

@Data@TableName("tb_user")public class User {    @TableId(type= IdType.INPUT)    private String id;    @TableField("user_name")    private String username;    private String passWord;    private String name;    private String email;    private int age;    private ArrayList<Authority> list;}

权限类

@Data@TableNamepublic class Authority {    @TableId(type = IdType.INPUT)    @TableField("aid")    private int id;    @TableId("aname")    private String name;}

测试

 @Test    public void ManyToMany(){        User user = userMapper.selectAuthorityById(1);        ArrayList <Authority> list = user.getList();        System.out.println(user);        for (Authority authority : list) {            System.out.println("所对应权限为"+authority.getName());        }    }

SpringBoot项目的依赖

       <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter</artifactId>    </dependency>        <dependency>        <groupId>mysql</groupId>        <artifactId>Mysql-connector-java</artifactId>        <version>5.1.26</version>    </dependency>        <dependency>        <groupId>org.projectlombok</groupId>        <artifactId>lombok</artifactId>        <optional>true</optional>    </dependency>        <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency>       <!--mybatis plus 起步依赖-->        <dependency>        <groupId>com.baomidou</groupId>        <artifactId>mybatis-plus-boot-starter</artifactId>        <version>3.4.0</version>    </dependency>

这下面就是我xml文件里面怎么写的嵌套查询语句

<mapper namespace="com.itheima.mybatisplus.mapper.UserMapper">    <!--返回的对象为authority-->    <resultMap id="authority" type="com.itheima.mybatisplus.domain.User">        <id column="id" property="id"/>        <id column="password" property="password"/>        <id column="age" property="age"/>        <id column="email" property="email"/>        <id column="name" property="name"/>        <id column="user_name" property="username"/>      <collection property="list"                  ofType="com.itheima.mybatisplus.domain.Authority">          <id property="id" column="aid"/>          <id property="name" column="aname"/>      </collection>    <select id="selectAuthorityById" parameterType="int" resultMap="authority">       SELECT * FROM         authority a,tb_user t,user_authority ua         WHERE a.aid=ua.authority_id         AND t.id=ua.user_id         AND t.id=#{id}    </select>

数据库的配置我就不放了,直接编写就可以了,看会下面这个xml配置就可以了 

一对多查询(经典案例)

条件

查询班级表 返回所有学生信息  (一对多问题)

数据库

班级class_info

MybatisPlus如何实现对象嵌套关联查询一对多List集合查询

学生student

MybatisPlus如何实现对象嵌套关联查询一对多List集合查询

代码实现

<!--        多对一  或者 一对一   --><!--        <association property=""--><!--        一对多 返回集合--><!- -  <collection  property=""- ->

实体类ClassInfo.java

@Datapublic class ClassInfo {     private Long id;    private String name;    private String nameTest;     private List<Student> studentList;}

ClassInfoMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "Http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!--名称空间:对应mapper层某个接口的包的全名称--><mapper namespace="com.example.demo.mapper.ClassInfoMapper">     <!--    查询班级 返回所有学生的信息   一对多-->     <!--    自定义映射规则-->    <resultMap id="OneToMany" type="com.qcby.zsGC.entity.ClassInfo">        <result column="name" jdbcType="VARCHAR" property="nameTest" />        <collection  column="{id1=id,name=name}"                     property="studentList"                     select="com.example.demo.mapper.StudentMapper.listByClassInfoId">                 </collection>    </resultMap>     <select id="listAllWithStudent" resultMap="OneToMany">        select * from class_info    </select>

关联StudentMapper.xml中的子查询

 <select id="listByClassInfoId" resultType="com.example.demo.entity.Student">        SELECT           *        FROM            student s        where class_info_id = #{id1} or name = #{name}    </select>

ClassInfoMapper.java

public interface ClassInfoMapper extends BaseMapper<ClassInfo> {      IPage<ClassInfo> listAllWithStudent(IPage<ClassInfo> page); }

ClassInfoService.java

public interface ClassInfoService extends IService<ClassInfo> {     IPage<ClassInfo> listAllWithStudent(IPage<ClassInfo> page); }

ClassInfoServiceImpl.java

@Servicepublic class ClassInfoServiceImpl extends ServiceImpl<ClassInfoMapper, ClassInfo> implements ClassInfoService {    @Autowired    private StudentService studentService;    @Override    public IPage<ClassInfo> listAllWithStudent(IPage<ClassInfo> page) {        return this.baseMapper.listAllWithStudent(page);    }}

ClassInfoController.java

@Controller@RequestMapping("classInfo")public class ClassInfoController {     @Autowired    private ClassInfoService classInfoService;     @RequestMapping("listAllWithStudent")    @ResponseBody    public IPage<ClassInfo> listAllWithStudent(Integer pageNo,Integer pageSize){        Page<ClassInfo> page = new Page<>(pageNo,pageSize);        return classInfoService.listAllWithStudent(page);    } }

感谢各位的阅读,以上就是“MybatisPlus如何实现对象嵌套关联查询一对多List集合查询”的内容了,经过本文的学习后,相信大家对MybatisPlus如何实现对象嵌套关联查询一对多List集合查询这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: MybatisPlus如何实现对象嵌套关联查询一对多List集合查询

本文链接: https://www.lsjlt.com/news/329908.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MybatisPlus实现对象嵌套关联查询一对多List集合查询
    目录对象嵌套关联查询一对多List集合查询mybatis嵌套关联查询如下一对多查询(经典案例)条件数据库代码实现对象嵌套关联查询一对多List集合查询 mybatis嵌套关联查询如下...
    99+
    2022-11-13
  • MybatisPlus如何实现对象嵌套关联查询一对多List集合查询
    这篇文章主要讲解了“MybatisPlus如何实现对象嵌套关联查询一对多List集合查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MybatisPlus如何实现对象嵌套关联查询一对多Li...
    99+
    2023-06-30
  • Mybatis关联查询结果集对象嵌套的具体使用
    在查询时经常出现一对多”的关系,所有会出现嵌套对象的情况,Mybatis在resultMap提供了collection标签,本文适合有一定Mybatis基础的读者查阅 数...
    99+
    2022-11-13
  • mybatis一对多嵌套查询怎么实现
    本文小编为大家详细介绍“mybatis一对多嵌套查询怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“mybatis一对多嵌套查询怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。mybatis一对多嵌...
    99+
    2023-07-05
  • Mybatis怎么实现一对一、一对多关联查询
    今天小编给大家分享一下Mybatis怎么实现一对一、一对多关联查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Mybati...
    99+
    2023-07-05
  • 使用Mybatis 如何实现多对一或一对多的关联查询
    使用Mybatis 如何实现多对一或一对多的关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先  数据库量表之间字段关系(没有主外键)studentmaj...
    99+
    2023-05-31
    mybatis 一对多 多对一
  • 怎么在mybatis中实现多对一关联查询
    怎么在mybatis中实现多对一关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一种关联方式1.修改实体类Student,追加关联属性,用于封装关联的数据修改完以后...
    99+
    2023-06-15
  • 如何使用mongoose实现多集合关联查询
    这篇文章主要介绍了如何使用mongoose实现多集合关联查询,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在使用node开发后端项目的时候,通常会选择mongodb作为数据库...
    99+
    2023-06-29
  • mybatis如何使用注解实现一对多关联查询
    mybatis 注解实现一对多关联查询 @Select("select id,mockexam_section as section,id as sectionId" ...
    99+
    2022-11-12
  • Mybatis使用@one和@Many实现一对一及一对多关联查询
    目录一、准备工作1.创建springboot项目,项目结构如下2.添加pom.xml配置信息3.配置相关信息二、使用@One注解实现一对一关联查询三、使用@Many注解实现一对多关联...
    99+
    2022-11-12
  • Mybatis实现一对一、一对多关联查询的方法(示例详解)
    Mybatis实现一对一、一对多关联查询,关联查询:多个表联合查询,只查询一次,通过resultMap里面的<association>、<collection>...
    99+
    2023-05-14
    Mybatis关联查询 Mybatis一对一 Mybatis一对多关联查询
  • MyBatis如何实现多表查询(多对一、一对多)
    MyBatis实现多表查询  一、多对一查询 数据库的准备 创建两张表,一张老师表,一张学生表 将老师主键id关联学生外键tid 创建sql的语句 create ta...
    99+
    2022-11-12
  • MySQL如何实现一对多查询
    这篇文章给大家分享的是有关MySQL如何实现一对多查询的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。这次要实现的是一对多查询,使用 MySQL 的 group_concat 函数...
    99+
    2022-10-18
  • springboot整合mybatis实现简单的一对多级联查询功能
    本文的目的是用springboot整合mybatis实现一个简单的一对多查询。(查询一个用户有多少件衣服) 第一步:数据库中,可以直接在navicat中建立两张我们需要用到的表 ...
    99+
    2022-11-12
  • 用实例解析MySQL多表关联一对多查询如何实现取最新一条数据
    这篇文章主要用实例解析MySQL多表关联一对多查询如何实现取最新一条数据,内容简而易懂,希望大家可以学习一下,学习完之后肯定会有收获的,下面让小编带大家一起来看看吧。MySQL 多表关联一对多查询取最新的一...
    99+
    2022-10-18
  • MySQL 多表关联一对多查询实现取最新一条数据的方法示例
    本文实例讲述了MySQL 多表关联一对多查询实现取最新一条数据的方法。分享给大家供大家参考,具体如下: MySQL 多表关联一对多查询取最新的一条数据 遇到的问题 多表关联一对多查询取最新的一条数据,数据出现重复 ...
    99+
    2022-05-16
    MySQL 多表关联 一对多查询 最新一条数据
  • 利用mybatis如何实现一个一对多查询功能
    利用mybatis如何实现一个一对多查询功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.需求分析:在开发中会遇到这样一个问题,查询订单信息,级联查询出用户信息和订单明...
    99+
    2023-05-31
    mybatis 一对多查询
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作