• mybatis-plus通过inSql实现子查询以及运算符



    一、Controller

        @GetMapping("/queryProductByTypes")
        public List<ProductDTO> queryProductByTypes(@RequestParam("types") List<String> types) {
            return opProductService.queryProductByTypes(types);
        }
    
    • 1
    • 2
    • 3
    • 4

    二、Service

    1、子查询Service

        @Override
        public List<ProductDTO> queryProductByTypes(List<String> typeList) {
            String types = typeList.stream().collect(Collectors.joining(","));
    
            List<OpProduct> list = this.list(
                    new LambdaQueryWrapper<OpProduct>()
                            .inSql(OpProduct::getId, "select id from op_product where FIND_IN_SET(" + "type ,'" + types + "')")
            );
            List<ProductDTO> productDTOS = BeanUtil.copyToList(list, ProductDTO.class);
            return productDTOS;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    2、运算符Service

        @Override
        public List<ProductDTO> queryProductByTypes(List<String> typeList) {
    //        String types = typeList.stream().map(s -> "\'" + s + "\'").collect(Collectors.joining(","));
    
            String types = typeList.stream().map(
                    new Function<String, String>() {
                        @Override
                        public String apply(String s) {
                            return "\'" + s + "\'";
                        }
                    }
            ).collect(Collectors.joining(","));
    
    
            List<OpProduct> list = this.list(
                    new LambdaQueryWrapper<OpProduct>()
                            .inSql(OpProduct::getType, types)
            );
            List<ProductDTO> productDTOS = BeanUtil.copyToList(list, ProductDTO.class);
            return productDTOS;
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    三、结果

    在这里插入图片描述

    在这里插入图片描述

    • 从来不跌倒不算光彩,每次跌倒后能再站起来,才是最大的荣耀。
    • 亲爱的自己,如果不开心了,就找个角落或者在被子里哭一晚,哭过笑过一切从新再来,你不需要任何人的同情可怜,从零开始,—样可以开心生活。
    • 世界上最幸福的事之一,莫过于经过一番努力后,所有东西正慢慢变成你想要的样子。
    • 人生最重要的是树立一个远大的目标,并下定决心去实现它。
    • 与其降低你的开支,不如去尝试增加你的收入。与其祈求生活平淡点,不如祈求自己强大点。
    • 花还会重新开,不同的春来了又来。
    • 在路上,见识世界;在途中,认清自己。
    • 会变成光的,要和日后相见的那个人互相照亮。
    • 你凭什么不努力又什么都想要,那别人努力奋斗又算什么。10、少—分烦恼,就会多一分快乐;忘却了烦恼,就会时时快乐。
    • 人生里面总是有所缺少,你得到什么,也就失去什么,重要的是你应该知道自己到底要什么。
    • 这世界太吵闹,你要把自己照顾好。
    • 用平常心来生活,用惭愧心来待人,用心来处事,用菩提心契佛心。
    • 我可以很自信的告诉你,他会和你在一起是因为你长得像我。
    • 世事千帆过,前方终会是温柔和月光。
  • 相关阅读:
    (整理未完成)【递推 / 递归】分形
    iframe安全问题
    调用API post请求
    2023年前端面试题
    【C++】使用std::vector()函数实现矩阵的加、减、点乘、点除等运算
    Jmeter —— jmeter接口自动化测试操作流程
    洛谷 P3648 [APIO2014]序列分割(斜率优化dp)
    es6(三)—— set(集合) 和map的使用
    Oracle GRID管理环境下 不建议禁用OS认证
    计算机组成原理---第七章输入/输出系统---I/O方式
  • 原文地址:https://blog.csdn.net/weixin_46146718/article/details/128013559