欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

【MyBatisPlus3.5.1】4、条件查询器Wrapper【SpringBoot环境】

时间:2023-08-12

类结构图

由类结构图可见,Wrapper 内方法有限,大部分方法都封装在 AbstractWrapper 中,使用时可以用操作类对象来调用方法;如:QueryWrapper 、UpdateWrapper

1、selectList

查询name不为空,email不为空,age大于18的用户

@Testpublic void test1(){ // 查询name不为空,email不为空,age大于18的用户 QueryWrapper wrapper = new QueryWrapper(); wrapper.isNotNull("name") .isNotNull("email") .ge("age", 18); List users = userMapper.selectList(wrapper); users.forEach(System.out::println);}

2、selectOne

查询 name=Billie 的用户

如果查询结果有多个,会报错

@Test public void test2(){ // 查询 name=Billie 的用户 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("name","Billie"); User user = userMapper.selectOne(wrapper); System.out.println(user); }

3、selectCount

根据 Wrapper 条件,查询总记录数

@Testpublic void test3(){ QueryWrapper wrapper = new QueryWrapper<>(); // 查询年龄在20到30之间;between 包含20和30 wrapper.between("age", 20, 30); Long count = userMapper.selectCount(wrapper); System.out.println(count);}

4、模糊查询

Compare 接口

like = LIKE '%值%'notLike = NOT LIKE '%值%'likeLeft = LIKE '%值'likeRight = LIKE '值%'

@Testpublic void test4(){ QueryWrapper wrapper = new QueryWrapper<>(); // 名字中包含 a,不包含 e,向左侧匹配 y wrapper.like("name", "a") .notLike("name", "e") .likeLeft("name", "y"); List> maps = userMapper.selectMaps(wrapper); maps.forEach(System.out::println);}

5、子查询 inSql

@Testpublic void test5(){ QueryWrapper wrapper = new QueryWrapper<>(); // id 存在于子查询中 wrapper.inSql("id", "select id from user where id < 5"); List objects = userMapper.selectObjs(wrapper); objects.forEach(System.out::println);}

6、排序

@Testpublic void test6(){ QueryWrapper wrapper = new QueryWrapper<>(); // id 小于8 wrapper.lt("id",8); // 按名字升序排序 wrapper.orderByAsc("name"); List users = userMapper.selectList(wrapper); users.forEach(System.out::println);}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。