天天看点

mybatis plus强大的条件构造器queryWrapper

一、条件构造器关系介绍 官网地址:https://mp.baomidou.com/guide/wrapper.html

mybatis plus强大的条件构造器queryWrapper

介绍 :

上图绿色框为抽象类abstract

蓝色框为正常class类,可new对象

黄色箭头指向为父子类关系,箭头指向为父类

wapper介绍 :

Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示

AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件

AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。

LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper

LambdaUpdateWrapper : Lambda 更新封装Wrapper

QueryWrapper : Entity 对象封装操作类,不是用lambda语法

UpdateWrapper : Update 条件封装,用于Entity对象更新操作

二、项目实例

在这里我以QueryWrapper和UpdateWrapper为例,进行测试讲解。我会在上篇博客原有的基础上进行测试,如果不喜欢搭建项目的可直接下载我上个项目,上个项目的博客对应上个项目的讲解

mybatis plus强大的条件构造器queryWrapper

上图表格为条件构造器使用中的各个方法格式和说明,如有不懂可参考官方文档内容

@RunWith(SpringRunner.class)

@SpringBootTest

public class QueryWrapperTests {

    @Autowired

    private UserMapper mapper;

    @Test

    public void delete() {

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        queryWrapper

                .isNull("name")

                .ge("age", 12)

                .isNotNull("email");

        int delete = mapper.delete(queryWrapper);

        System.out.println("delete return count = " + delete);

    }

    @Test

    public void selectOne() {

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        queryWrapper.eq("name", "lqf");

        User user = mapper.selectOne(queryWrapper);

        System.out.println(user);

    }

    @Test

    public void selectCount() {

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        queryWrapper.eq("name", "lqf");

        Integer count = mapper.selectCount(queryWrapper);

        System.out.println(count);

    }

    @Test

    public void selectList() {

        List<User> list = mapper.selectList(null);

        System.out.println(list);

    }

    @Test

    public void selectMaps() {

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        queryWrapper.isNotNull("name");

        List<Map<String, Object>> maps = mapper.selectMaps(queryWrapper);

        for (Map<String, Object> map : maps) {

            System.out.println(map);

        }

    }

    @Test

    public void selectPage() {

        Page<User> page = new Page<>(1, 5);

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        IPage<User> userIPage = mapper.selectPage(page, queryWrapper);

        System.out.println(userIPage);

    }

    @Test

    public void selectMapsPage() {

        Page<User> page = new Page<>(1, 5);

        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        IPage<Map<String, Object>> mapIPage = mapper.selectMapsPage(page, queryWrapper);

        System.out.println(mapIPage);

    }

    @Test

    public void update() {

        //修改值

        User user = new User();

        user.setStatus(true);

        user.setName("zhangsan");

        //修改条件s

        UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();

        userUpdateWrapper.eq("name", "lqf");

        int update = mapper.update(user, userUpdateWrapper);

        System.out.println(update);

    }

}