查询专栏: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
让我们一起进步!!!