首页 > 编程语言 > 详细

SpringBoot整合MybatisPlus之condition作用演示

时间:2020-01-03 17:26:33      阅读:99      评论:0      收藏:0      [点我收藏+]

之前展示的方法,例如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来进行判断极大的简化代码。。。。。。

SpringBoot整合MybatisPlus之condition作用演示

原文:https://www.cnblogs.com/zhukf/p/12145681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!