mybatis plus LambdaQueryChainWrapper

阅读数:142 评论数:0

跳转到新版页面

分类

python/Java

正文

一、概述

在使用mybatis plus时,我们常常先创建一个条件构造器,再通过mapper或者service以条件构造器为参数进行查询。

而LambdaQueryChainWrapper是将这两个过程合二为一,不需要手动对应字段名,直接使用User:xxx即可。

二、使用

1、获取数据的方法 

page() 分页
list() 列表
one() 只获取一个

2、创建wrapper的方法

法1:(推荐)service.lambdaQuery()

@Autowired
private UserService userService;

​public void selectWrapper15() {
    List<User> users = userService.lambdaQuery()
        .eq(User::getAge, 30)
        .list();
    
    users.forEach(System.out::println);
}

法2:(不推荐)用new来创建,需要传入mapper

@Autowired
private UserMapper userMapper;

public void test() {
    List<User> list = new LambdaQueryChainWrapper<User>(userMapper)
            .select(User::getId, User::getName)
            .like(User::getName, "王")
            .list();
    System.out.println(list);
}

3、不能使用LambdaQueryChainWrapper的地方

(1)不能使用为mapper的入参数

userMapper.selectList(queryWrapper) ; 
//queryWrapper不能是LambdaQueryChainWrapper,可以是LambdaQueryWrapper

(2)不能作为saveOrUpdate条件

userService.saveOrUpdate(user, queryWrapper) ; 
//queryWrapper不能是LambdaQueryChainWrapper,可以是LambdaQueryWrapper

4、使用示例

(1)多条件查询

@Autowired
private UserService userService;

​public void selectWrapper15() {
    List<User> users = userService.lambdaQuery()
        .like(User::getName, "张")
        .lt(User::getAge, 30)
        .list();
    
    users.forEach(System.out::println);
}

(2)and条件中有or

@Autowired
private UserService userService;

public void selectWrapper16() {
    List<User> users = userService.lambdaQuery()
        .like(User::getName, "张")
        .and(user -> user.lt(User::getAge, 40).or().isNotNull(User::getEmail))
        .list();

    users.forEach(System.out::println);
}



相关推荐

使用mybatis plus时,当我们遇见我们的实体类名驼峰写法时: private Date createTime

1、Controller package com.xkcoding.rbac.security.controller;

一、AbstractWrapper 用于生成sql的where条件,当第一个入参数为boolean condition时,表示该条件是否加入最后成的sql中。 1、allEq allEq(Map<R,

一、项目依赖 <dependencies> <!-- --> <dependency> <groupId>org.springframework

一、@SqlParser 如果在程序中,有部分SQL不需要加上租户ID的表示,需要过滤特定的sql,可以通过@SqlParser(filter = true)的形式,只能作用于

一、概述 Model是mybatis plus自带的实体父类,直接定义Bean的时候实现Model类,该类的作用是能通过实体直接进行crud操作,而不需要进行调用dao,前提是“必须存在对应的原始ma

1、pom.xml <build> <resources> <resource> <!-- xml放在java目录下--

一、示例数据 CREATE TABLE `json_test` ( `id` int NOT NULL AUTO_INCREMENT, `roles` json DEFAULT NULL CO

mybatis-plus是一个mybatis增强版工具,为了简化开发和提高效率。 可以在idea安装一个mybatisx插件,此插件可以通过mapper中的方法定位到xml中。</

一、初始化项目 1、pom.xml &lt;?xml version="1.0" encoding