首页 > 其他分享 >mybatis 多个条件in查询

mybatis 多个条件in查询

时间:2023-11-08 10:55:40浏览次数:31  
标签:多个 private 查询 value 为空 mybatis message append

1. UI如下, 共有四个查询条件,每个查询可以多选,所以考虑用in查询

 2. 查询DTO类封装如下:

@Data
@ApiModel(value = "整机下市明细信息查询对象")
public class MachineOffMarketQueryDto {
@ApiModelProperty(value = "型号编码集合", required = true)
@NotEmpty(message="型号编码集合不能为空")
private List<String> productCodes;
@ApiModelProperty(value = "型号名称集合", required = true)
@NotEmpty(message="型号名称集合不能为空")
private List<String> productNames;
@ApiModelProperty(value = "PLC状态集合", required = true)
@NotEmpty(message="PLC状态集合不能为空")
private List<String> plcStates;
@ApiModelProperty(value = "PLC状态实际日期集合", required = true)
@NotEmpty(message="PLC状态实际日期集合不能为空")
private List<String> dateActuals;
@ApiModelProperty(value = "查询页码", required = true)
@NotNull(message="查询页码不能为空")
private Integer pageNumber;
@ApiModelProperty(value = "查询页size", required = true)
@NotNull(message="查询页码大小不能为空")
private Integer pageSize;

public String toString(){
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("productCodes", getProductCodes())
.append("productNames", getProductNames())
.append("plcStates", getPlcStates())
.append("dateActuals", getDateActuals())
.append("pageNumber", getPageNumber())
.append("pageSize", getPageSize())
.toString();
}

}
3. Controller

 

4. service:

 4. Mapper.xml

<select id="selectMachineOffMarketInfo"  parameterType="MachineOffMarketQueryDto" resultType="DiOffMarketModelDetailDo">
SELECT product_code, product_name, sub_pl_code, sub_pl_name, industry, prod_life_state, date_plan, date_actual, src_etl_date, trg_etl_date,
pt, product_place, offline_number, creator, create_time, update_time
from di_off_market_model_detail
where 1='1'
<if test="productCodes != null and productCodes.size() >0">
and product_code in
<foreach collection="productCodes" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
<if test="productNames != null and productNames.size() >0">
and product_name in
<foreach collection="productNames" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
<if test="plcStates != null and plcStates.size() >0">
and prod_life_state in
<foreach collection="plcStates" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
<if test="dateActuals != null and dateActuals.size() >0">
and date_actual in
<foreach collection="dateActuals" item="value" separator="," open="(" close=")">
#{value}
</foreach>
</if>
</select>

标签:多个,private,查询,value,为空,mybatis,message,append
From: https://www.cnblogs.com/andy1234/p/17816881.html

相关文章

  • jpa 查询 报错 EntityNotFoundException
    背景:使用JPA查询,串接到另外一张表时,由于没有实际在表格关系中指定外键,而是在实体类中指定外键导致关联表中的数据被删除时,JPA查询时,报错EntityNotFoundException方案:在实体类的关联属性上,添加注解,并新增自定义序列化过滤器@JsonInclude(value=JsonInclude.Include.CUSTOM,......
  • Node.js如何处理多个请求?
    Node.js如何处理多个请求?前言在计算机科学领域,关于并发和并行的概念经常被提及。然而,这两个术语常常被混为一谈,导致很多人对它们的理解存在着很多混淆。本文小编将通过对并发和并行的深入解析,帮助读者更好地理解它们之间的不同特点和应用场景。同时,文章还将介绍Node.js如何高效......
  • ArcMap中Cut Polygons Tool工具将一个面图层切割为多个部分
      本文介绍在ArcGIS下属ArcMap软件中,通过“CutPolygonsTool”工具,对一个面要素矢量图层加以手动分割,从而将其划分为指定形状的多个部分的方法。  对于一个面要素矢量文件,有时我们需要对其加以划分,通过手动勾勒新的线条的方式,将其中原本的一个面分割为多个指定的小区域;本文就......
  • mybatisplus轻松完成一次模糊+分页查询
    之前一直用mybatis+pageinfo完成模糊+分页查询,还需要手写sql语句,之前一直没做尝试,今天试了试mybatisplus一个人完成模糊+分页,挺简单的有一个小插曲是,我的前端接受的data中,data.list变成了data.record,一开始没有查到数据,让我差点怀疑自己哪里写错了,在使用sout的检查中我发现servic......
  • 单个Nginx发布多个react静态页面
    在有些网络环境中,端口是一种比较稀缺的资源,而我们又恰好有多个前端项目需要发布,我们可以采取将多个项目映射到同一个端口上面的方案加以解决。本教程前端项目主要以react为主,部署在linux服务器上。1.将项目资源的访问地址修改为相对方式在react项目package.json中,添加或者修改......
  • 解决mybatis嵌套查询使用PageHelper分页不准确
    版权声明:本文为CSDN博主「那只小猿」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/weixin_41869361/article/details/116427385springboot项目中嵌套查询使用PageHelper发现使用结果不正确,上PageHelper官网看了一下果然是......
  • pageHelper 插件一对多查询分页问题
    1.首先先确定我们需要返回的数据数据结构,这里我的贴出实体类(set/get方法自己生成)publicclassBillInfoAndStudentInfoBean{privateStringid;privateStringbillId;privateBigDecimalmoneyTotal;privateList<ItemsBean>items;}2.然后我们在mapper.xm......
  • plsql 导入导出表数据,表结构 where 条件过滤,输入框输入 where 子查询(不需带where 关键
    plsql导入导出表数据,表结构where条件过滤,输入框输入where子查询(不需带where关键字)1.导出表结构,不含数据1.点击设置,点击导出表2.选择你要导出的表,在where字句填写1=2,点击导出即可2.导出表数据和结构在1的基础上,去掉where字句1=2,即可3.导入表结构和数据1.点击......
  • 某地区DNS查询解析域名信息后出现本机地址127.0.0.1和0.0.0.0
    一、现象背景: 接某地区分公司同事反馈,手机移动网络无法通过公网访问公司业务系统二、分析过程:1、查看流量入口Nginx,公网访问记录都正常,无异常日志。2、联系用户查询手机客户端出口IP,通过浏览器地址栏中输入,在外部防火墙侧和Nginx侧都未发现有该用户来源IP访问记录,黑名单也无。......
  • Linux学习笔记之grep满足或排除多个关键字
    grep-E"word1|word2|word3"file.txt#满足任意条件(word1、word2和word3之一)将匹配。grepword1file.txt|grepword2|grepword3#必须同时满足三个条件(word1、word2和word3)才匹配。 #grep同时排除多个关键字#不说废话,例如需要排除abc.txt中的mmmnnngr......