条件构造器

条件构造器

十分重要: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);
}
posted @ 2021-07-30 10:40  saxon宋  阅读(69)  评论(0)    收藏  举报