自学内容网 自学内容网

Mybatis plus核心功能-条件构造器

目录

1 前言

2 使用方法

2.1 where条件部分

2.1.1 基于QueryWrapper

2.1.2 基于LambdaQueryWrapper(推荐,优雅)

2.2 set语句比较特殊的部分

2.2.1 基于UpdateWrapper

2.2.2 基于LambdaUpdateWrapper(推荐,优雅)

3 结尾语 


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)!