mybatis-plus-join的使用解决mybatis多表查询

1. 准备工作

(1)数据库

student

course

 

 (2)pom依赖

<dependency>
    <groupId>com.github.yulichang</groupId>
    <artifactId>mybatis-plus-join</artifactId>
    <version>1.2.2</version>
</dependency>

(3)mapper.xml文件

StuentMapper.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 namespace="com.lynash.mycloud.mybatisjoin.modules.student.StudentMapper">

    <resultMap id="studentMap" type="com.lynash.mycloud.mybatisjoin.entity.StudentEntity">
                <id property="id" column="id"/>
                <result property="name" column="name"/>
                <result property="courseid" column="courseid"/>
    </resultMap>
</mapper>

CourseMapper.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 namespace="com.lynash.mycloud.mybatisjoin.modules.course.CourseMapper">

    <resultMap id="courseMap" type="com.lynash.mycloud.mybatisjoin.entity.CourseEntity">
                <id property="id" column="id"/>
                <result property="name" column="name"/>
                <result property="score" column="score"/>
    </resultMap>
</mapper>

(4)Mapper interface

@Mapper
public interface StudentMapper extends MPJBaseMapper<StudentEntity> {

}
@Mapper
public interface CourseMapper extends MPJBaseMapper<CourseEntity> {

}

2. Student和Course 多表查询left join

student controller

    @ApiOperation(value = "测试多表查询", notes = "测试多表查询")
    @GetMapping("/joinquery/{id}")
    public Res<List<StudentCourseDispVO>> getCourseById(@PathVariable("id") String id) {
        return Res.ok(studentService.getCourseById(id));
    }

service

    @Override
    public List<StudentCourseDispVO>  getCourseById(String id){

        List<StudentCourseDispVO> list = studentMapper.selectJoinList(StudentCourseDispVO.class,
                new MPJLambdaWrapper<StudentEntity>()
                        .selectAll(StudentEntity.class)
                        .select(CourseEntity::getScore)
                        .leftJoin(CourseEntity.class, CourseEntity::getId, StudentEntity::getCourseid)
                        .eq(StudentEntity::getId, id));
        return list;

    }

结果类

@Data
public class StudentCourseDispVO implements Serializable{

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "" )
    private String id;

    @ApiModelProperty(value = "" )
    private String name;

    @ApiModelProperty(value = "" )
    private String courseid;

    @ApiModelProperty(value = "" )
    private Integer score;
}

输出结果

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值