<MyBatis>前台传参为数组,后台SQ查询案例;

一般用于多选场景:多选查询;

如下图所示:

传值:"status" : ["保存","关闭"],

不传值:"status": [],

传给后台:

控制层:

java 复制代码
	@PostMapping(value = "/getList")
    @AuthInterceptor("mcg:getxxx:getList")
    public Result getList(HttpServletRequest request,@RequestBody String param) {
        try {
            Map<String, Object> paramMap = JsonUtils.readValue(param, Map.class);
            return Result.success().result(xxxService.getList(request,paramMap));
        } catch (Exception e) {
            log.error("XxxListController getList is error===:" + e.getMessage(), e);
            return Result.failure("据查询失败");
        }
    }
    

Mapper.xml层:

sql 复制代码
    <if test = "null != status and status.size > 0">
        and status in
        <foreach collection="status" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </if>
  	

疑问:

按理来说:前台传入的status 为数组类型,SQ 中if条件判断应该是:and status.length > 0,但是这样会报错,

所以最后选择:and status.size> 0;

欢迎给位大佬指点迷津!

相关推荐
原来是猿6 分钟前
MySQL【基本查询上 - 表的增删改查】
数据库·mysql
scofield_gyb18 分钟前
Redis简介、常用命令及优化
数据库·redis·缓存
MIXLLRED18 分钟前
Python模块详解(一)—— socket 和 threading 模块
开发语言·python·socket·threading
難釋懷19 分钟前
Redis搭建分片集群
数据库·redis·缓存
happymaker062620 分钟前
JDBC(MySQL)——DAY04(调用存储过程,存储函数)
java·数据库·mysql
Jay-r26 分钟前
OpenClaw养龙虾工具安全风险分析:五大隐患及防护建议引言
网络·python·安全·web安全·ai助手·openclaw
mcooiedo26 分钟前
Spring Boot与MyBatis
spring boot·后端·mybatis
C蔡博士1 小时前
最近点对问题(Closest Pair of Points)
java·python·算法
APIshop1 小时前
Java调用亚马逊商品详情API接口完全指南
java·开发语言·python
微学AI1 小时前
时序数据库选型:聚焦时间序列数据库Apache IoTDB——为工业物联网与大数据而生
数据库·apache·时序数据库