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;
}
输出结果