我们写一些复杂的sql就可以使用它来替代!
isNotNull()
不为空 ge()
大于等于
查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12
1 2 3 4 5 6 7 8 9 @Test void contextLoads () { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.isNotNull("name" ) .isNotNull("email" ) .ge("age" , 12 ); userMapper.selectList(wrapper).forEach(System.out::println); }
eq()
等于
查询名字为kylin年龄为3岁
1 2 3 4 5 6 7 8 @Test void test2 () { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("name" , "kylin" ).eq("age" ,3 ); User user = userMapper.selectOne(wrapper); System.out.println(user); }
between()
在什么什么之间 [x,y]
查询年龄在20-30岁之间的用户
1 2 3 4 5 6 7 8 @Test void test3 () { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.between("age" , 20 , 30 ); Integer count = userMapper.selectCount(wrapper); System.out.println(count); }
notLike()
不包含 likeRight相当于sql语句中的like X%也就是以X开头
likeLeft相当于sql语句中的like %X也就是以X结尾
查询名字中不包含e和email以t开头的用户
1 2 3 4 5 6 7 8 9 10 11 12 @Test void test4 () { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper .notLike("name" , "e" ) .likeRight("email" , "t" ); List<Map<String, Object>> maps = userMapper.selectMaps(wrapper); maps.forEach(System.out::println); }
inSql()子查询
查询id小于3的用户数据
1 2 3 4 5 6 7 8 @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); }
orderByAsc()
升序排序orderByDesc()
降序排序
查询用户塑胶通过id升序进行排序