MyBatis Plus(简称MP)是MyBatis的增强工具,旨在简化开发、提高效率。它提供了许多便捷的功能,其中之一就是条件构造器(Wrapper)。条件构造器用于构建SQL查询条件,使得开发者可以通过编程方式动态地生成复杂的SQL语句,而无需手动编写SQL字符串。本文将详细讲解MyBatis Plus的条件构造器,包括其基本概念、常用方法以及实际应用场景。
1. 基本概念
MyBatis Plus的条件构造器主要由以下几个核心类组成:
- AbstractWrapper:所有条件构造器的抽象基类,提供了基本的条件构造方法。
- QueryWrapper:用于查询条件构造。
- UpdateWrapper:用于更新条件构造。
- LambdaQueryWrapper:使用Lambda表达式进行查询条件构造。
- LambdaUpdateWrapper:使用Lambda表达式进行更新条件构造。
这些类都继承自AbstractWrapper
,因此它们共享一些基本的条件构造方法。
2. 常用方法
2.1 基本条件构造方法
- eq:等于(=)
- ne:不等于(<>)
- gt:大于(>)
- ge:大于等于(>=)
- lt:小于(<)
- le:小于等于(<=)
- like:模糊匹配(LIKE)
- notLike:不模糊匹配(NOT LIKE)
- in:在集合中(IN)
- notIn:不在集合中(NOT IN)
- isNull:为空(IS NULL)
- isNotNull:不为空(IS NOT NULL)
- between:在范围内(BETWEEN)
- notBetween:不在范围内(NOT BETWEEN)
2.2 逻辑条件构造方法
- and:逻辑与(AND)
- or:逻辑或(OR)
- nested:嵌套条件
2.3 其他方法
- orderByAsc:按升序排序
- orderByDesc:按降序排序
- groupBy:分组
- having:分组后过滤
- select:指定查询字段
3. 示例代码
3.1 使用QueryWrapper进行查询
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("age", 25)
.like("name", "John")
.orderByDesc("create_time");
List