• 【Mybatis】动态SQL之choose标签


    1、Pojo

    package com.yczxyy.paperfree.dto.jhemr;
    
    import io.swagger.annotations.ApiModelProperty;
    import lombok.Data;
    
    /**
     * @author potential
     */
    @Data
    public class JobEmrMonitor {
        @ApiModelProperty(value = "监控代码编号")
        private String MONITOR_ITEM_CODE;
        @ApiModelProperty(value = "监控代码名称")
        private String MONITOR_ITEM_NAME;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2、Dao

    List getMonitor1(JobEmrMonitor jobEmrMonitor);
    
    • 1

    3、Service

    List getMonitor1(JobEmrMonitor jobEmrMonitor);
    
    • 1

    4、ServiceImpl

    @Override
    public List getMonitor1(JobEmrMonitor jobEmrMonitor) {
        return dmsZhiKongRuleDao.getMonitor1(jobEmrMonitor);
    }
    
    • 1
    • 2
    • 3
    • 4

    5、xml配置文件

        
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    注意:
    这里重点解释一下xml配置文件中的动态SQL含义。
           1、首先是 where标签,where标签里面包含 就是查询的条件
           2、接下来是choose标签,choose标签中的就是可供选择的条件
           3、when标签 就是每一个查询条件 当满足第一个查询条件的时候,就直接开始查询了;如果第一个查询条件不满足,就来看第二个查询条件,若满足,就进行查询,程序结束;如都不符合,这里又分为两种情况:(1)when标签中的查询条件都不符合,但是又必须插入参数,那么就使用otherwise标签,来控制,使得必须有一个基本条件 即otherwise这个标签中的内容满足才可以进行查询,否则报错;(2)若when标签中的查询条件不符合,但是又不需要控制必要的参数,也就是说,即使不传入任何参数,那么也会有东西返回,即将表中内容全部返回。

    6、Controller

    @ApiOperation("监控代码/名称 字典2")
    @PostMapping("getMonitorNameAndCode1")
    public CommonResult getMonitorNameAndCode1(@Validated  JobEmrMonitor jobEmrMonitor){
        ArrayList list = new ArrayList<>();
        list=(ArrayList) dmsZhiKongRuleService.getMonitor1(jobEmrMonitor);
        return CommonResult.success(list);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    7、测试

    7.1 只输入MONITOR_ITEM_CODE,会根据MONITOR_ITEM_CODE进行动态模糊查询,返回满足条件的内容。
    在这里插入图片描述
    7.2 只输入MONITOR_ITEM_NAME,会根据MONITOR_ITEM_NAME进行模糊查询,返回满足条件的内容。
    在这里插入图片描述
    7.3 参数什么都不传 在什么都不传的情况下,依然会有返回值,即返回表中全部内容。
    在这里插入图片描述

  • 相关阅读:
    美摄AI商品图解决方案
    贝叶斯人工智能大脑与 ChatGPT
    位移贴图的原理和作用
    工控机连接Profinet转Modbus RTU网关与水泵变频器Modbus通讯配置案例
    Nginx内存池(申请内存过程,小块内存分配)
    【AI语言大模型】星火使用介绍
    山海鲸汽车需求调研系统:智慧决策的关键一步
    B轮融资背后:未势能源在万亿“长坡”上,铺出三重“厚雪”
    针对小程序的漏洞挖掘
    从手动测试到自动测试,企业该如何选择?
  • 原文地址:https://blog.csdn.net/junR_980218/article/details/126161949