zoukankan      html  css  js  c++  java
  • SpringBoot整合MybatisPlus之condition作用演示

    之前展示的方法,例如like,between,eq等,查看源码发现里面都是重载方法,第一个参数都为boolean类型的condition,默认为true,默认执行

    模拟背景:前端页面有个查询需要姓名和邮箱来作为查询条件,填入姓名邮箱后,后端需要进行判断后查询sql

    一:controller接收后判断处理(原来的写法)

    模拟用户查询代码:请求参数:name,email

    /**
     *模拟前台传入参数,name和email
     */
    @Test
        public void testCondition(){
            String name="王";
            String email="";
            condition(name,email);
        }
    
    private void condition(String name,String email){
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            //对name进行非空判断
            if(StringUtils.isNotEmpty(name)){
                queryWrapper.like("name",name);
            }
            //对email进行非空判断
            if(StringUtils.isNotEmpty(email)){
                queryWrapper.like("email",email);
            }
            List<User> userList = userMapper.selectList(queryWrapper);
            userList.forEach(System.out::println);
    
        }

    结果:显而易见,name作为查询条件出现在了sql中,而email由于做了非空判断没有在sql中展示出来

    二.使用condition后的写法

     /**
      *模拟前端传入参数查询符合条件用户,查询参数:name,email
      */ 
     @Test
        public void testCondition(){
            String name="";
            String email="x";
            condition(name,email);
        }
    
    
        private void condition(String name,String email){
            QueryWrapper<User> queryWrapper = new QueryWrapper<>();
            //采用condition进行条件判断,条件为true,进行查询
            queryWrapper.like(StringUtils.isNotEmpty(name),"name",name)
                    .like(StringUtils.isNotEmpty(email),"email",email);
            List<User> userList = userMapper.selectList(queryWrapper);
            userList.forEach(System.out::println);
    
        }

    结果:

    通过condition来进行判断极大的简化代码。。。。。。

  • 相关阅读:
    【提权思路】绕过SecureRDP限制远程连接
    用Win32编写发送消息至Notepad++的程序
    证明自己吧--------Writeup
    【漏洞预警】Intel爆CPU设计问题,导致win和Linux内核重设计(附测试poc)
    在Kali Linux上编译Windows EXP
    apt-get出现无法定位安装包问题解决
    利用Pastezort渗透win7
    利用arpspoof探取账户密码
    Argument 'xxx' is not a function, got undefined,初学Angular的第一个坑
    (转)Http协议经典详解
  • 原文地址:https://www.cnblogs.com/zhukf/p/12145681.html
Copyright © 2011-2022 走看看