一、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
 
 微信扫一扫
微信扫一扫  支付宝扫一扫
支付宝扫一扫 