条件构造器是一项非常重要的功能,它允许你以一种类型安全的方式构建 SQL 查询条件。条件构造器的主要类是 Wrapper
,它有多个实现类,其中最常用的是 QueryWrapper
。下面是一些基本的用法:
1. 创建 QueryWrapper 对象
QueryWrapper<Entity> queryWrapper = new QueryWrapper<>();
2. 基本条件
2.1 等于条件
queryWrapper.eq("column_name", value);
2.2 不等于条件
queryWrapper.ne("column_name", value);
2.3 大于、大于等于、小于、小于等于条件
queryWrapper.gt("column_name", value); queryWrapper.ge("column_name", value); queryWrapper.lt("column_name", value); queryWrapper.le("column_name", value);
2.4 BETWEEN 条件
queryWrapper.between("column_name", value1, value2);
2.5 LIKE 条件
queryWrapper.like("column_name", "value");
3. 组合条件
3.1 AND 条件
queryWrapper.and(qw -> qw.eq("column1", value1).or().eq("column2", value2));
3.2 OR 条件
queryWrapper.or(qw -> qw.eq("column1", value1).ne("column2", value2));
4. 排序
queryWrapper.orderByAsc("column1", "column2"); queryWrapper.orderByDesc("column1", "column2");
5. Select 字段
queryWrapper.select("column1", "column2");
6. 嵌套查询
queryWrapper.nested(qw -> qw.eq("column1", value1).or().eq("column2", value2));
7. 自定义 SQL 片段
queryWrapper.apply("column_name = {0}", value);
8. Lambda 表达式
MyBatis-Plus 还支持使用 Lambda 表达式来构建查询条件,这样可以更加类型安全,避免硬编码字段名。例如:
LambdaQueryWrapper<Entity> lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(Entity::getColumn, value);
以上是 MyBatis-Plus 条件构造器的一些基本用法,你可以根据实际需求灵活运用这些方法来构建复杂的查询条件。
UpdateWrapper
UpdateWrapper
和 QueryWrapper
都是 MyBatis-Plus 中用于构建 SQL 查询或更新条件的条件构造器,但它们主要用于不同的操作。
QueryWrapper
QueryWrapper
主要用于构建查询条件,用于 select
操作。它可以用于:
- 设置查询条件(例如,等于、不等于、大于、小于等)。
- 设置排序条件。
- 设置查询字段。
- 设置嵌套查询。
- 插入自定义 SQL 片段。
- 使用 Lambda 表达式进行类型安全的条件构造。
UpdateWrapper
UpdateWrapper
主要用于构建更新条件,用于 update
操作。它可以用于:
- 设置更新条件(例如,等于、不等于、大于、小于等)。
- 设置更新字段。
- 设置嵌套更新条件。
- 插入自定义 SQL 片段。
- 使用 Lambda 表达式进行类型安全的条件构造。
- 设置自增或自减的更新。