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

欢迎给位大佬指点迷津!

相关推荐
章鱼丸-几秒前
DAY31 文件的拆分和写法
开发语言·python
原来是猿4 分钟前
MySQL【用户管理】
数据库·mysql
唐叔在学习13 分钟前
Python桌面端应用最小化托盘开发实践
后端·python·程序员
2501_9454235414 分钟前
使用Fabric自动化你的部署流程
jvm·数据库·python
2401_8463416515 分钟前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
未知鱼25 分钟前
Python安全开发之子域名扫描器(含详细注释)
网络·python·安全·web安全·网络安全
2401_8318249628 分钟前
编写一个Python脚本自动下载壁纸
jvm·数据库·python
2401_8579182938 分钟前
Python在2024年的主要趋势与发展方向
jvm·数据库·python
今儿敲了吗41 分钟前
python基础学习笔记第九章——模块、包
开发语言·python
IvorySQL1 小时前
PostgreSQL 19 重磅新语法终于补齐这个缺口
数据库·postgresql·开源