条件构造器
- 关于条件构造器,主要用于一些复杂的SQL语句。
我们可以看到下图,MybatisPlus方法有关条件构造器的使用:
- AbstractWrapper类就是我们的条件构造器类,不过我们通常使用它的子类QueryWrapper 和 UpdateWrapper,顾名思义:一个用于查询,一个用于更新。
具体使用
详细网址:https://mybatis.plus/guide/wrapper.html#abstractwrapper
- 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于20:
selectList
@Test
public void Test() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.isNotNull("name")
.isNotNull("email")
.ge("age",20);
userMapper.selectList(queryWrapper).forEach(System.out::println);
}
- 查询name为Linda的用户
selectOne
@Test
public void Test() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.eq("name","Linda");
User user = userMapper.selectOne(queryWrapper);
System.out.println(user.toString());
}
- 查询年龄在20~30岁之间的用户的个数
selectCount
@Test
public void Test() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.between("age",20,30);
Integer count = userMapper.selectCount(queryWrapper);
System.out.println(count);
}
- 模糊查询
@Test
public void Test() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//SELECT id,name,age,email,version,deleted,create_time,update_time
// FROM user
// WHERE deleted=0 AND (name NOT LIKE %t% AND name LIKE o%
queryWrapper
.notLike("name","t")
.likeRight("name","o");
List<Map<String, Object>> maps = userMapper.selectMaps(queryWrapper);
maps.forEach(System.out::println);
}