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來進行判斷極大的簡化代碼。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM