使用mybatis-plus的条件构造器
MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。以下是一些常用的条件构造器及其使用方法:
-
QueryWrapper:用于构建查询条件,支持基本的等于、不等于、大于、小于等各种常见操作。它允许以链式调用的方式添加多个查询条件,并且可以组合使用
and
和or
逻辑。 -
UpdateWrapper:用于构造更新条件,可以在更新数据时指定条件。与 QueryWrapper 类似,它也支持链式调用和逻辑组合。
-
LambdaQueryWrapper:这是一个基于 Lambda 表达式的查询条件构造器,它通过 Lambda 表达式来引用实体类的属性,从而避免了硬编码字段名。这种方式提高了代码的可读性和可维护性。
-
LambdaUpdateWrapper:类似于 LambdaQueryWrapper,LambdaUpdateWrapper 是基于 Lambda 表达式的更新条件构造器。它允许使用 Lambda 表达式来指定更新字段和条件,同样避免了硬编码字段名的问题。
以下是一些基本的使用方法:
-
eq:设置指定字段的相等条件。
queryWrapper.eq("name", "老王"); lambdaQueryWrapper.eq(User::getName, "老王");
生成的 SQL:
SELECT * FROM user WHERE name = '老王'
。 -
ne:设置指定字段的不相等条件。
queryWrapper.ne("name", "老王"); lambdaQueryWrapper.ne(User::getName, "老王");
生成的 SQL:
SELECT * FROM user WHERE name <> '老王'
。 -
gt:设置指定字段的大于条件。
queryWrapper.gt("age", 18); lambdaQueryWrapper.gt(User::getAge, 18);
生成的 SQL:
SELECT * FROM user WHERE age > 18
。 -
ge:设置指定字段的大于等于条件。
queryWrapper.ge("age", 18); lambdaQueryWrapper.ge(User::getAge, 18);
生成的 SQL:
SELECT * FROM user WHERE age >= 18
。 -
lt:设置指定字段的小于条件。
queryWrapper.lt("age", 18); lambdaQueryWrapper.lt(User::getAge, 18);
生成的 SQL:
SELECT * FROM user WHERE age < 18
。 -
le:设置指定字段的小于等于条件。
queryWrapper.le("age", 18); lambdaQueryWrapper.le(User::getAge, 18);
生成的 SQL:
SELECT * FROM user WHERE age <= 18
。 -
between:设置字段的 BETWEEN 条件。
queryWrapper.between("age", 18, 30); lambdaQueryWrapper.between(User::getAge, 18, 30);
生成的 SQL:
SELECT * FROM user WHERE age BETWEEN 18 AND 30
。 -
notBetween:设置字段的 NOT BETWEEN 条件。
queryWrapper.notBetween("age", 18, 30); lambdaQueryWrapper.notBetween(User::getAge, 18, 30);
生成的 SQL:
SELECT * FROM user WHERE age NOT BETWEEN 18 AND 30
。 -
like:设置字段的 LIKE 条件。
queryWrapper.like("name", "王"); lambdaQueryWrapper.like(User::getName, "王");
生成的 SQL:
SELECT * FROM user WHERE name LIKE '%王%'
。
这些是 MyBatis-Plus 条件构造器的一些基本使用方法,它们可以帮助你构建复杂的查询和更新条件,提高开发效率并减少 SQL 注入的风险。