条件构造器
条件构造器
十分重要:Wrapper
我们写一些复杂的sql就可以使用它来替代!

1、测试一,记住查看输出的SQL进行分析
@Test
void contextLoads() {
// 查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper
.isNotNull("name")
.isNotNull("email")
.ge("age",12);
mapper.selectList(wrapper).forEach(System.out::println); // 和我们刚才学习的map对比一下
}
//
==> Preparing: SELECT id,name,age,email,version,create_time,update_time,delete_flag FROM user WHERE delete_flag=0 AND (name IS NOT NULL AND email IS NOT NULL AND age >= ?)
==> Parameters: 12(Integer)
2、测试二,记住查看输出的SQL进行分析
@Test
void test2(){
// 查询名字:Sandy
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.eq("name","Sandy");
User user = mapper.selectOne(wrapper); // 查询一个数据,出现多个结果使用List或者 Map
System.out.println(user);
}
//
==> Preparing: SELECT id,name,age,email,version,create_time,update_time,delete_flag FROM user WHERE delete_flag=0 AND (name = ?)
==> Parameters: Sandy(String)
3、测试三,记住查看输出的SQL进行分析
@Test
void test3(){
// 查询年龄在 20 ~ 30 岁之间的用户
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.between("age",20,30); // 区间
Integer count = mapper.selectCount(wrapper);// 查询结果数
System.out.println(count);
}
//
==> Preparing: SELECT COUNT( 1 ) FROM user WHERE delete_flag=0 AND (age BETWEEN ? AND ?)
==> Parameters: 20(Integer), 30(Integer)
4、测试四,记住查看输出的SQL进行分析
// 模糊查询
@Test
void test4(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 左和右 t%
wrapper
.notLike("name","i")
.likeRight("email","t");
List<Map<String, Object>> maps = mapper.selectMaps(wrapper);
maps.forEach(System.out::println);
}
//
==> Preparing: SELECT id,name,age,email,version,create_time,update_time,delete_flag FROM user WHERE delete_flag=0 AND (name NOT LIKE ? AND email LIKE ?)
==> Parameters: %i%(String), t%(String)
5、测试五
// 模糊查询
@Test
void test5(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
// id 在子查询中查出来
wrapper.inSql("id","select id from user where id > 3");
List<Object> objects = mapper.selectObjs(wrapper);
objects.forEach(System.out::println);
}
//
==> Preparing: SELECT id,name,age,email,version,create_time,update_time,delete_flag FROM user WHERE delete_flag=0 AND (id IN (select id from user where id > 3))
==> Parameters:
6、测试六
//测试六
@Test
void test6(){
QueryWrapper<User> wrapper = new QueryWrapper<>();
// 通过id进行排序
wrapper.orderByAsc("id");
List<User> users = mapper.selectList(wrapper);
users.forEach(System.out::println);
}

浙公网安备 33010602011771号