第二十七章:mybatis plus 如何自定义 SQL 查询条件

第二十七章:mybatis plus 如何自定义 SQL 查询条件

目标

  • 掌握 mybatis plus 自定义查询SQL条件的方式
  • 理解如何基于mybatis plus自动 生成的代码扩展多表级联查询的扩展方法

实验

1、准备两张表

CREATE TABLE `student` (
  `id` int(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `mobile` varchar(255) DEFAULT NULL,
  `id_card` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;


CREATE TABLE `grade` (
  `id` int(11) NOT NULL COMMENT '自增主键',
  `id_card` varchar(255) NOT NULL COMMENT '身份证号',
  `class_name` varchar(255) NOT NULL COMMENT '班级名称',
  `class_no` int(11) NOT NULL COMMENT '班级编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2、service自定义

/**
 * 学生服务接口,继承自IService接口,用于对学生信息进行操作。
 * 这个接口定义了对学生数据的基本操作方法,比如增删改查等。
 */
public interface StudentService extends IService<Student> {
   

    /**
     * 根据班级编号查询学生列表。
     *
     * @param classNo 班级编号,可为空。如果为空,则返回所有学生。
     * @return 返回学生列表,可能为空。
     */
    public List<Student> queryList(Integer classNo);

    /**
     * 根据学生查询条件对象查询学生列表。
     *
     * @param studentVo 学生查询条件对象,包含各种查询条件。可以用来进行复杂的学生信息查询。
     * @return 返回学生列表,可能为空。
     */
    public List<Student> queryList(StudentVo studentVo);

    /**
     * 根据一组条件参数查询学生列表。
     *
     * @param conditions 包含查询条件的Map对象,键值对形式指定查询条件。提供了高度灵活的查询方式。
     * @return 返回学生列表,可能为空。
     */
    public List<Student> queryList(Map<String, Object> conditions);


}

3、dao层定义

public interface StudentDao extends BaseMapper<Student> {
   

    /**
     * 根据班级编号查询学生列表。
     *
     * @param classNo 班级编号,用于筛选学生。
     * @return 返回符合条件的学生列表。
     */
    public List<Student> queryListByClassNo(@Param("classNo") Integer classNo);

    /**
     * 根据条件映射查询学生列表。
     *
     * @param conditions 包含查询条件的映射对象,键值对形式,灵活配置查询条件。
     * @return 返回符合条件的学生列表。
     */
  

相关推荐

  1. 第二:mybatis plus 如何定义 SQL 查询条件

    2024-04-23 23:46:05       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 23:46:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 23:46:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 23:46:05       82 阅读
  4. Python语言-面向对象

    2024-04-23 23:46:05       91 阅读

热门阅读

  1. arduino rc522

    2024-04-23 23:46:05       34 阅读
  2. Binlog、Redo 和 Undo 的概念与区别

    2024-04-23 23:46:05       36 阅读
  3. 详解Qt中的时间——QDateTime、QDate、QTime、QTimeZone

    2024-04-23 23:46:05       33 阅读
  4. Swift中的WebView

    2024-04-23 23:46:05       33 阅读
  5. AcWing 802. 区间和——算法基础课题解

    2024-04-23 23:46:05       38 阅读
  6. html实现点击按钮时下方展开一句话

    2024-04-23 23:46:05       31 阅读
  7. C++11中的智能指针

    2024-04-23 23:46:05       25 阅读
  8. Python小程序 - 文件类型统计

    2024-04-23 23:46:05       35 阅读