前言
用 MyBatis-Plus框架 的 QueryWrapper,可以更方便、清晰、安全、易维护地构建动态查询条件,避免了手动拼接 SQL 字符串的繁琐和潜在的安全问题。特别对于刚使用新手或者习惯了编写SQL语句的猿来说,在面对复杂的查询逻辑条件,可能会有点蒙圈。这里本人就于实践中整了一点案例进行分享。本文是基于一个医生预约筛选查询的功能,其界面大致如下:
其中大致的逻辑是,根据名称、类型、领域等字段进行常规的查询,其中复杂的点在预约的三种方式和价格区间的组合查询,任选一/多种预约类型,传入价格区间进行查询,这里选择的任一预约类型的价格在区间内,就返回该条记录。记录价格间是或(or)的关系。
硬广
自制3D版三维搭建俄罗斯方块WX小游戏,走过路过可以扫码支持。
三维的消除,地狱难度:
实现
这里就是采用了 MyBatis-Plus框架 的 QueryWrapper来实现,首先要定义医生的实体类型:
@Data
@TableComment("医生")
@TableName(autoResultMap = true)
public class Doctor {
@ApiModelProperty("ID,创建勿填")
@TableId(value = "id",type = IdType.ASSIGN_ID)
@Column(comment = "ID")
private Long id;
@ApiModelProperty("姓名")
@Column(comment = "姓名")
private String name;
@ApiModelProperty("性别 0:女 1:男")
@Column(type = MySqlTypeConstant.TINYINT,defaultValue = "0",comment = "性别 0:女 1:男")
private Integer sex;
@ApiModelProperty("医生类型")
@Column(comment = "医生类型")
private Long doctorType;
@ApiModelProperty("擅长领域")
@Column(comment = "擅长领域")