Mybatis plus核心功能-条件构造器
目录
2.1.2 基于LambdaQueryWrapper(推荐,优雅)
2.2.2 基于LambdaUpdateWrapper(推荐,优雅)
1 前言
Mybatis plus自带的一些方法已经能够我们对简单SQL的需求,但是一部分稍复杂的操作仍然需要我们使用条件构造器来实现。而条件构造器QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分,UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊才使用。本文参考自黑马程序员。
2 使用方法
一般情况下要select就用select函数,要like就用like函数,大于就gt,小于就lt……一些特殊的,还可以用setSql函数。具体例子如下。
2.1 where条件部分
例子:
SELECT id,username,info,balance FROM user WHERE username LIKE "i" AND balance >= 100
2.1.1 基于QueryWrapper
void testQueryWrapper() {
// 1.构建查询条件
QueryWrapper<User> wrapper = new QueryWrapper<User>()
.select("id", "username", "info", "balance")
.like("username", "i")
.ge("balance", 100);
// 2.查询
List<User> users = userMapper.selectList(wrapper);
}
2.1.2 基于LambdaQueryWrapper(推荐,优雅)
上面的id,username等在这里被换成了lambda表达式,显然更加优雅,可维护性更高。
void testLambdaQueryWrapper() {
// 1.构建查询条件
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<User>()
.select(User::getId, User::getUsername, User::getInfo, User::getBalance)
.like(User::getUsername, "i")
.ge(User::getBalance, 100);
// 2.查询
List<User> users = userMapper.selectList(wrapper);
}
2.2 set语句比较特殊的部分
例子:
UPDATE user SET balance = balance - 100 WHERE id in (1, 2)
2.2.1 基于UpdateWrapper
void testUpdateWrapper() {
List<Long> ids = List.of(1L, 2L);
UpdateWrapper<User> wrapper = new UpdateWrapper<User>()
.setSql("balance = balance - 100")//语句特殊
.in("id", ids);
userMapper.update(null, wrapper);
}
2.2.2 基于LambdaUpdateWrapper(推荐,优雅)
这里就不举例子了,和LambdaQueryWrapper类似,换成Lambda表达式即可。
3 结尾语
这里只介绍了几个简单的例子,具体可看官网的文档。不过"balance = balance - 100"这样的特殊语句直接写在这里真的合适吗?接下来可以看作者的另一篇文章《Mybatis plus核心功能-自定义SQL》
原文地址:https://blog.csdn.net/qq_71654538/article/details/136334118
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!