MyBatis-Plus_查询进阶03

查询专栏:MP默认查询原则
查询的是数据库列名非实体类属性。

一、需求思路分析:

 5. 名字为王姓并且(年龄小于40或者邮箱不为空)
  sql:name like '王%' and (age < 40 or email is not null)

 6. 名字为王姓或者(年龄小于40并且年龄大于20并且邮箱不为空)
sql:name like '王%' or (age < 40 and age >20 and email is not null)


二、需求实战

5. 需求实战05

/**
     * 5. 名字为王姓并且(年龄小于40或者邮箱不为空)
     * sql:name like '王%' and (age < 40 or email is not null)
     */
    @Test
    public void selectByWrapper5() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.likeRight("name", "王")
                    .and(wq -> wq.lt("age", 40)
                                 .or()
                                 .isNotNull("email"));

        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
    /*
       sql形式: SELECT id,name,age,email,manager_id,create_time FROM user WHERE name LIKE ? AND ( age < ? OR email IS NOT NULL )
     */

6. 需求实战06

    /**
     * 6. 名字为王姓或者(年龄小于40并且年龄大于20并且邮箱不为空)
     * sql:name like '王%' or (age < 40 and age >20 and email is not null)
     */
    @Test
    public void selectByWrapper6() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.likeRight("name", "王")
                    .or(wq -> wq.lt("age", 40)
                                .gt("age", 20)
                                .isNotNull("email"));

        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
    /*
       sql形式: SELECT id,name,age,email,manager_id,create_time FROM user
       WHERE name LIKE ? OR ( age < ? AND age > ? AND email IS NOT NULL )
     */

想学习更多微服务、分布式、中间件、数据库、项目快速构建等系列技术
请访问http://gblfy.com
让我们一起进步!!!

猜你喜欢

转载自blog.csdn.net/weixin_40816738/article/details/90280217