一、QueryWrapper概述
QueryWrapper是MyBatis-Plus提供的一个强大的条件构造器,它可以帮助我们简化SQL语句的编写以及提高开发效率。QueryWrapper可以让开发者在使用MyBatis-Plus时轻松构造复杂查询条件,支持连缀操作,也即是链式调用。
二、QueryWrapperge的基础用法
1. 查询单条记录
使用QueryWrapper的getOne()方法可以查询满足条件的一条记录,并且只返回第一条匹配的记录。
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("name", "John").eq("age", 20); User user = userMapper.selectOne(wrapper);
2. 查询多条记录
使用QueryWrapper的selectList()方法可以查询所有满足条件的记录。
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.between("age", 18, 25).orderByDesc("age"); List<User> userList = userMapper.selectList(wrapper);
3. 查询记录数量
使用QueryWrapper的selectCount()方法可以查询满足条件的记录数量。
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.ge("age", 18).le("age", 25); long count = userMapper.selectCount(wrapper);
三、QueryWrapperge的高级用法
1. 查询指定字段
使用QueryWrapper的select()方法可以指定查询出哪些字段,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.select("id", "name", "age"); List<User> userList = userMapper.selectList(wrapper);
2. 分页查询
使用QueryWrapper的Page类可以实现分页查询,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>(); Page<User> page = new Page<>(1, 10); IPage<User> userPage = userMapper.selectPage(page, wrapper); // 调用方法处理结果 List<User> userList = userPage.getRecords(); long total = userPage.getTotal();
3. 动态SQL构造
QueryWrapper可以实现复杂的动态SQL构造,例如:
String name = "John"; Integer age = 20; QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("is_deleted", 0); if(StringUtils.isNotEmpty(name)){ wrapper.eq("name", name); } if(age != null){ wrapper.ge("age", age); } List<User> userList = userMapper.selectList(wrapper);
四、QueryWrapperge的更新操作
QueryWrapper也可以用于更新操作,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("id", 1); User updateUser = new User(); updateUser.setName("John"); updateUser.setAge(22); userMapper.update(updateUser, wrapper);
五、QueryWrapperge的删除操作
QueryWrapper也可以用于删除操作,例如:
QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("id",1); userMapper.delete(wrapper);
总结
QueryWrapper是一个功能强大且易于使用的条件构造器,在开发中不可或缺。通过本文的介绍,我们可以了解到其基础用法和高级用法,以及和更新、删除操作的结合使用。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/242322.html