<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;

欢迎给位大佬指点迷津!

相关推荐
ea4on4 分钟前
看完这篇,我才MySQL索引是这样理解的
数据库
努力学习的小廉5 分钟前
Python 零基础入门——基础语法(二)
android·开发语言·python
YSyuanshuo6 分钟前
2026滴鸡精品牌指南:羽本元如何用技术革新挑战传统老牌?
大数据·python
鬼先生_sir8 分钟前
MySQL进阶基础:索引、视图、存储过程与常用函数
数据库·mysql
Nturmoils9 分钟前
实时决策时代,工业物联网需要什么样的数据库?
数据库·后端
Flying pigs~~10 分钟前
RAG前身:基于mysql➕redis➕bm25的传统QA问答系统
数据库·redis·缓存·大模型·qa·rag·prompt提示词
fly spider10 分钟前
MySQL数据存储详解
数据库·mysql
用户83562907805111 分钟前
Python 实现 Word 页眉页脚添加与自定义设置
后端·python
yanghuashuiyue21 分钟前
langchain AI应用框架研究【前端-篇二】
人工智能·python·langchain
档案宝档案管理23 分钟前
2026档案管理系统排名解析,易用性+安全性双维度对比
大数据·数据库·人工智能·档案管理