使用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 注入的风险。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」