返回顶部
首页 > 资讯 > 精选 >Mybatis联合查询怎么实现
  • 116
分享到

Mybatis联合查询怎么实现

2023-06-26 04:06:38 116人浏览 八月长安
摘要

本篇内容主要讲解“mybatis联合查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis联合查询怎么实现”吧!数据库表结构departmentemployee要求一现在的要求

本篇内容主要讲解“mybatis联合查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis联合查询怎么实现”吧!

    数据库表结构

    Mybatis联合查询怎么实现

    department

    Mybatis联合查询怎么实现

    employee

    Mybatis联合查询怎么实现

    Mybatis联合查询怎么实现

    要求一

    现在的要求是输入 id 把 employee 表的对应员工数据查询出来,并且查询出该员工的所处部门信息

    public class Employee {    private Integer id;    private String lastName;    private String email;    private String gender;    private Department dept;setter和getter.......}
    public class Department {    private Integer id;    private String departmentName;    setter和getter.......}

    1、级联属性封装结果集

    实现

    这个要求很明显就要用到两个表,想要把部门信息封装到Employee对象的dept字段需要用到resultMap属性

    方法一

     <!-- public Employee getEmployee(int id); --><select id="getEmployee" resultMap="emp1">select e.*, d.id did, d.department_namefrom employee e,department dwhere e.d_id = d.idand e.id = #{id}</select><resultMap id="emp1" type="employee"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="email" property="email"/><result column="gender" property="gender"/><result column="did" property="dept.id"/><result column="department_name" property="dept.departmentName"/></resultMap>

    方法二

    <!-- public Employee getEmployee(int id); --><select id="getEmployee" resultMap="emp2">select e.*, d.id did, d.department_namefrom employee e,department dwhere e.d_id = d.idand e.id = #{id}</select><resultMap id="emp2" type="employee"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="email" property="email"/><result column="gender" property="gender"/><association property="dept" javaType="department"><id column="did" property="id"/><result column="department_name" property="departmentName"/></association></resultMap>

    测试

     @Test    public void test1() {        sqlSession sqlSession = MyTest.getSqlSession();        EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);        System.out.println(mapper.getEmployee(1));    }

    结果

    Mybatis联合查询怎么实现

    2、分步查询

    方法

    DepartmentMapper.xml

    <!-- public Department getDepartment2(int id); --><select id="getDepartment2" resultType="department">select * from department where id = #{id}</select>

    EmployeeMaper.xml

    <!-- public Employee getEmployee2(int id); --><!-- 分步查询 --><select id="getEmployee2" resultMap="emp3">select * from employee where id = #{id}</select><resultMap id="emp3" type="employee"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="email" property="email"/><result column="gender" property="gender"/><association property="dept" select="com.workhah.mapper.department.DepartmentMapper.getDepartment2" column="d_id"/></resultMap>

    测试

     @Test    public void test1() {        SqlSession sqlSession = MyTest.getSqlSession();        EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);        System.out.println(mapper.getEmployee2(1));    }

    结果

    Mybatis联合查询怎么实现

    要求二

    现在的要求是输入 id 把 department 表对应的部门信息查询出来,并且查询该部门下的所有员工信息

    public class Employee {    private Integer id;    private String lastName;    private String email;    private String gender;setter和getter.......}
    public class Department {    private Integer id;    private String departmentName;    private List<Employee> employees;    setter和getter.......}

    3、级联属性封装结果集

    方法

    <!--   public Department getDepartment(int id); --><select id="getDepartment" resultMap="dep1">select d.*, e.id eid, e.last_name, e.email, e.genderfrom department dleft join employee e on d.id = e.d_idwhere d.id = #{id}</select><resultMap id="dep1" type="department"><id column="id" property="id"/><result column="department_name" property="departmentName"/><collection property="employees" ofType="employee"><id column="eid" property="id"/><result column="last_name" property="lastName"/><result column="email" property="email"/><result column="gender" property="gender"/></collection></resultMap>

    测试

     @Test    public void test2() {        SqlSession sqlSession = MyTest.getSqlSession();        DepartmentMapper mapper = sqlSession.getMapper(DepartmentMapper.class);        System.out.println(mapper.getDepartment(1));    }

    结果

    Mybatis联合查询怎么实现

    4、分步查询

    EmployeeMaper.xml

    <!--  public List<Employee> getEmployeeByDid(int did); --><select id="getEmployeeByDid" resultType="employee">select *from employeewhere d_id = #{did}</select>

    DepartmentMapper.xml

    <!-- public Department getDepartment3(int id); --><select id="getDepartment3" resultMap="dep2">select *from departmentwhere id = #{id}</select><resultMap id="dep2" type="department"><id column="id" property="id"/><result column="depart_name" property="departName"/><collection property="employees" ofType="employee"select="com.workhah.mapper.employee.EmployeeMapper.getEmployeeByDid" column="id"/></resultMap>

    测试

     @Test    public void test2() {        SqlSession sqlSession = MyTest.getSqlSession();        DepartmentMapper mapper = sqlSession.getMapper(DepartmentMapper.class);        System.out.println(mapper.getDepartment3(1));    }

    结果

    Mybatis联合查询怎么实现

    到此,相信大家对“Mybatis联合查询怎么实现”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: Mybatis联合查询怎么实现

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

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

    猜你喜欢
    • Mybatis联合查询怎么实现
      本篇内容主要讲解“Mybatis联合查询怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mybatis联合查询怎么实现”吧!数据库表结构departmentemployee要求一现在的要求...
      99+
      2023-06-26
    • Mybatis联合查询的实现方法
      目录1、级联属性封装结果集实现2、分步查询方法3、级联属性封装结果集4、分步查询数据库表结构 department employee 要求一 现在的要求是输入 id 把 em...
      99+
      2024-04-02
    • Mybatis Plus关联查询怎么实现
      本篇内容介绍了“Mybatis Plus关联查询怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Mybatis-Plus 简介什么是 ...
      99+
      2023-06-22
    • MySQL中的聚合查询和联合查询怎么实现
      这篇文章主要介绍“MySQL中的聚合查询和联合查询怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL中的聚合查询和联合查询怎么实现”文章能帮助大家解决问题。一、聚合查询(行与行之间的计...
      99+
      2023-07-05
    • Mysql中怎么实现子查询和联合查询
      Mysql中怎么实现子查询和联合查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。查询: 在select查...
      99+
      2024-04-02
    • MySQL数据库聚合查询和联合查询怎么实现
      这篇文章主要介绍“MySQL数据库聚合查询和联合查询怎么实现”,在日常操作中,相信很多人在MySQL数据库聚合查询和联合查询怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL数据库聚合查询和联合...
      99+
      2023-06-21
    • MyBatis实现多表联合查询resultType的返回值
      目录多表联合查询resultType的返回值一般数据按参数类型返回根据某字段查询查询结果为多条记录,存放在list中返回多表联合查询解决方案多表联查,返回结果嵌套list多表联合查询...
      99+
      2024-04-02
    • sql语句中怎么实现联合查询
      sql语句中怎么实现联合查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。sql语句联合查询详解  2011-03-0...
      99+
      2024-04-02
    • MyBatis中动态SQL及关联查询怎么实现
      小编给大家分享一下MyBatis中动态SQL及关联查询怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!序言 MyBatis,大家都知道,半自动的ORM框架,原来叫ibatis,后来好...
      99+
      2024-04-02
    • 怎么在mybatis中实现多对一关联查询
      怎么在mybatis中实现多对一关联查询?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。第一种关联方式1.修改实体类Student,追加关联属性,用于封装关联的数据修改完以后...
      99+
      2023-06-15
    • MySQL联合查询如何实现
      这篇文章主要介绍“MySQL联合查询如何实现”,在日常操作中,相信很多人在MySQL联合查询如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL联合查询如何实现”的疑惑有所帮助!接下来,请跟着小编...
      99+
      2023-07-04
    • MyBatis如何实现多表联合查询resultType的返回值
      这篇“MyBatis如何实现多表联合查询resultType的返回值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MyBat...
      99+
      2023-06-29
    • SpringBoot中整合MyBatis-Plus-Join使用联表查询的实现
      目录1、mybatis-plus2、mybatis-plus-join3、引入依赖4、mybatis配置信息5、建库建表6、代码自动生成7、联表查询1、mybatis-plus 相信...
      99+
      2023-03-03
      MyBatis-Plus-Join 联表查询 MyBatis-Plus Join查询
    • Mybatis怎么实现一对一、一对多关联查询
      今天小编给大家分享一下Mybatis怎么实现一对一、一对多关联查询的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Mybati...
      99+
      2023-07-05
    • 【MySQL联合查询】轻松实现数据关联
      1、联合查询 联合查询又称为多表查询,它的基本执行过程就是笛卡尔积 1.1 认识笛卡尔积 那么什么是笛卡尔积呢? 答:笛卡尔积就是将两张表放在一起进行计算,把第一张表的每一行分别取出来和第二张表的每一行进行连接,得到一个新的行。 ...
      99+
      2023-09-15
      mysql 数据库 sql Powered by 金山文档
    • MySQL --- 聚合查询 和 联合查询
      聚合查询: 下文中的所有聚合查询的示例操作都是基于此表: 聚合函数 聚合函数都是行与行之间的运算。 count() select count(列名) from 表名; 统计该表中该列的行数,但是 null 值不会统计在内,但是...
      99+
      2023-10-21
      mysql 数据库 sql
    • MyBatis-Plus怎么实现多表联查
      这篇文章主要介绍“MyBatis-Plus怎么实现多表联查”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MyBatis-Plus怎么实现多表联查”文章能帮助大家解决问题。建库建表DROP&n...
      99+
      2023-06-29
    • Mybatis分页查询怎么实现
      小编给大家分享一下Mybatis分页查询怎么实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们实现查询除了@org.junit.Test  ...
      99+
      2023-06-28
    • mybatis模糊查询怎么实现
      MyBatis模糊查询可以通过使用 `%` 或 `_` 来实现。`%` 表示任意多个字符(包括0个字符),`_` 表示任意一个字符。...
      99+
      2023-09-05
      mybatis
    • MyBatis 多表联合查询及优化方法
      目录背景正文关于优化这篇文章我打算来简单的谈谈 mybatis 的多表联合查询。起初是觉得挺简单的,没必要拿出来写,毕竟 mybatis 这东西现在是个开发的都会用,而且网上的文章也...
      99+
      2022-11-13
      MyBatis 多表联合查询 MyBatis 多表查询
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作