结构
mapper包里有xml文件夹以及对应的接口,方法写在接口里,xml里写具体语句
返回实体类
package com.ym.edu.entity.vo;
import java.io.Serializable;
/**
* @author ym
* @date 2022/10/05 08:27:54
* @description
**/
public class CoursePublishVo implements Serializable {
private static final long serialVersionUID = 1L;
private String id;
private String title;
private String cover;
private Integer lessonNum;
private String subjectLevelOne;
private String subjectLevelTwo;
private String teacherName;
/**
* 只用于显示
*/
private String price;
}
自定义SQL接口方法
package com.ym.edu.mapper;
import com.ym.edu.entity.Course;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ym.edu.entity.vo.CoursePublishVo;
/**
* <p>
* 课程 Mapper 接口
* </p>
*
* @author ym
* @since 2022-06-27
*/
public interface CourseMapper extends BaseMapper<Course> {
/**
* 自定义SQL获取发布信息
*
* @param courseId
* @return
*/
public CoursePublishVo getPublishCourseInfoVo(String courseId);
}
在xml中编写自定义SQL
<?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.ym.edu.mapper.CourseMapper">
<!--根据课程id查询课程确认信息-->
<select id="getPublishCourseInfoVo" resultType="com.ym.edu.entity.vo.CoursePublishVo">
SELECT ec.`id`,
ec.`title`,
ec.`cover`,
ec.`price`,
ec.`lesson_num` AS lessonNum,
et.`name` AS teacherName,
es.`title` AS subjectLevelOne,
es1.`title` AS subjectLevelTwo
FROM edu_course ec
LEFT JOIN edu_course_description ecd ON ec.`id` = ecd.`id`
LEFT JOIN edu_teacher et ON ec.`teacher_id` = et.`id`
LEFT JOIN edu_subject es ON ec.`subject_id` = es.`id`
LEFT JOIN edu_subject es1 ON es.`parent_id` = es1.`id`
WHERE ec.`id` = #{courseId}
</select>
</mapper>
1.id=“getPublishCourseInfoVo” 表示对应的自定义SQL方法
2.parameterType=“String” 表示参数类型,一般可以不写
3.resultType=“com.ym.edu.entity.vo.CoursePublishVo” 表示返回数据类型,这个必须要写,需要返回数据类型的全路径
4.resultMap=“” 表示自定义返回数据类型,需要专门自定义
5.自定义SQL语句里获取的字段名或者字段别名要与返回数据类型里的属性名要对应
6.WHERE ec.id= #{courseId} 表示参数,可以使用#也可以使用美元符,但是一般不使用美元符,因为它表示字符串拼接,有SQL注入风险 如果只有一个参数,参数名可以随便写
版权声明:本文为qq_40732959原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。