条件构造器
我们写复杂SQL使用它来代替!
测试一
@SpringBootTest
public class WrapperTest{
@Autowired
private UserMapper userMapper;
@Test
void contextLoads() {
//查询name不为空、并且邮箱不为空、年龄大于等于20的
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.isNotNull("name").isNotNull("email").ge("age",20);
userMapper.selectList(wrapper).forEach(System.out::println);//和刚才的map对比
}
}
测试二
@Test
void test2(){
//查询名字 左小妹
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","左小妹");
User user = userMapper.selectOne(wrapper);
System.out.println(user);
}
测试三
@Test
void test3(){
//查询年龄在20-30之间的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age",20,30);
Long count = userMapper.selectCount(wrapper);
System.out.println(count);
}
测试四
@Test
void test4(){
//模糊查询
QueryWrapper<User> wrapper = new QueryWrapper<>();
//左和右 %e%
wrapper.notLike("name","e").likeRight("email","t");
List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
maps.forEach(System.out::println);
}
测试五
@Test
void test5(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.inSql("id","select id from user where id<3");
List<Object> objects = userMapper.selectObjs(wrapper);
objects.forEach(System.out::println);
}
测试六
@Test
void test6(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
//通过id降序排序
wrapper.orderByDesc("id");
List<User> users = userMapper.selectList(wrapper);
users.forEach(System.out::println);
}