1.常用条件方法
| 方法 | 说明 |
|---|---|
| eq | 等于 = |
| ne | 不等于 <> |
| gt | 大于 > |
| ge | 大于等于 >= |
| lt | 小于 < |
| le | 小于等于 <= |
| between | BETWEEN 值1 AND 值2 |
| notBetween | NOT BETWEEN 值1 AND 值2 |
| like | LIKE '%值%' |
| notLike | NOT LIKE '%值%' |
| likeLeft | LIKE '%值' |
| likeRight | LIKE '值%' |
| isNull | 字段 IS NULL |
| isNotNull | 字段 IS NOT NULL |
| in | 字段 IN (值1, 值2, ...) |
| notIn | 字段 NOT IN (值1, 值2, ...) |
| groupBy | 分组 GROUP BY 字段 |
| orderByAsc | 排序 ORDER BY 字段 ASC |
| orderByDesc | 排序 ORDER BY 字段 DESC |
| having | HAVING (SQL语句) |
这是一些使用service查询的例子
//.查询笔记作者的所有粉丝select* from tb_follow where follow_user_id = ?List<Follow> follows = followService.query().eq("follow_user_id", user.getId()).list();//扣减boolean success = seckillVoucherService.update().setSql("stock = stock - 1")//set stock=stock-1.eq("voucher_id", voucherOrder.getVoucherId()) //where id=? and stock>0.gt("stock", 0).update();
2.条件构造器
MyBatis-Plus 提供了强大的条件构造器 Wrapper,用于构建复杂的查询条件。
QueryWrapper
QueryWrapper<User> wrapper = new QueryWrapper<>();
wrapper.like("name", "张").between("age", 20, 30).isNotNull("email").orderByDesc("age");
List<User> users = baseMapper.selectList(wrapper);QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("status", 1).ge("age", 18).le("age", 30).like("name", "张").orderByDesc("create_time");
List<User> user=baseMapper.selectList(queryWrapper);
LambdaQueryWrapper (推荐)
//查询20—30岁,名字有张字邮箱不为空
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.like(User::getName, "张").between(User::getAge, 20, 30).isNotNull(User::getEmail).orderByDesc(User::getAge);List<User> users = userMapper.selectList(wrapper);// 分页查询
IPage<User> page = new Page<>(1, 10); // 当前页,每页大小
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.ge(User::getAge, 20);
IPage<User> userPage = userMapper.selectPage(page, wrapper);
