Appearance
1,名字中包含雨并且年龄小于40 name like '%雨
%' and age<40 @Test public void selectByWrapper(){ QueryWrapper<User> queryWrapper=new QueryWrapper<User>(); //QueryWrapper<User> query=Wrappers.<User>query(); queryWrapper.like("name"," ==雨==
").lt("age",40); userList=userMapper.selectList(queryWrapper); userList.forEach(System.out::println); }
2,名字中包含雨并且年龄大于等于20且小于等于40并且emai不为空 name like '%雨
%' and age between 20 and 40 and email is not null @Test public void selectByWrapper2(){ QueryWrapper<User>queryWrapper1=new QueryWrapper<User>(); queryWrapper1.like("name"," ==雨==
").between("age",20,40).isNotNull("email");
List<User> userList=userMapper.selectList(queryWrapper1); userList.forEach(System.out::println); }
3,名字为王姓或者年龄大于等于25,按照年龄降序排列,年龄相同按照id升序排列 name like '王
- %' or age>=25 order by age desc,id asc
- queryWrapper.likeRight("name","
==王==
").or().ge("age",25).orderByDesc("age").orderByAsc("id"); ==4====,创建日期为====2019====年====2====月====14====日并且直属上级名字为王姓== date_formate(create_time,'%y-%m-%d') and manage_id in (select id from user where name like '王
%') queryWrapper.apply("date_format(create_time,'%Y-%m-%d')={0}","2019-02-14") .inSql("manage ==r==
_id","selectidfromuserwherenamelike'
==王==
%'"); ==两个参数可以防止====sql====注入,这样,=='2019-02-14'==会作为整体取代=={0}
5,姓名为王姓并且(年龄小于40或邮箱不为空) name like '王
%' and (age\<40 or email is not null)
queryWrapper.likeRight("name","
==王==
").and(qw->qw.lt("age",40).or().isNotNull("email"));
6,名字为王姓或者(年龄小于40并且年龄大于20并且邮箱不为空
- )
- name like '
王
- %' or (age<40 and age>20 and email is not null)
- queryWrapper.likeRight("name","
==王==
").or(qw->qw.lt("age",40).gt("age",20).isNotNull("email"));
7,(年龄小于40或者邮箱不为空) 并且姓名为王姓 (age\<40 or email is not null) and name like '王
%' queryWrapper.nested(qw->qw.lt("age",40).or().isNotNull("email")).likeRight("name"," ==王==
");
8,年龄为
- 30,31,34,35
- age in (30
、31、34、35)
queryWrapper.in("age",Arrays.asList(30,31,34,35));
