【Mybatis】分析SQL之choose作者
原创【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;
}
2、Dao
List getMonitor1(JobEmrMonitor jobEmrMonitor);
3、Service
List getMonitor1(JobEmrMonitor jobEmrMonitor);
4、ServiceImpl
@Override
public List getMonitor1(JobEmrMonitor jobEmrMonitor) {
return dmsZhiKongRuleDao.getMonitor1(jobEmrMonitor);
}
5、xml配置文件
注意:
让我们重点解释一下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);
}
7、测试
7.1 只输入 MONITOR_ITEM_CODE
,会根据MONITOR_ITEM_CODE执行动态模糊查询以返回符合条件的内容。
7.2 只输入 MONITOR_ITEM_NAME
,会根据MONITOR_ITEM_NAME进行模糊查询以返回符合条件的内容。
7.3 参数不传递任何信息 在没有的情况下,仍然会有一个返回值,即返回表的全部内容。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除