Mybatis-Plus--LambdaQueryWrapper--使用/实例

原文网址:Mybatis-Plus--LambdaQueryWrapper--使用/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文用示例介绍Mybatis-Plus的LambdaQueryWrapper的用法。

        这种用法是使用Mybatis-Plus进行查询最好用的方法,用过一次后就会直接抛弃其他写法。

LambdaQueryWrapper的好处

  1. 写法最简洁,最短
  2. 写起来最快
  3. 很方便对齐,可读性好
  4. 不需要Mapper
  5. 不需要手动找到对应的字段名,直接用User::xxx即可。

写法1:Service + 条件 (推荐)

需求1:多个条件查询(名字中带“张”且年龄小于30岁)

@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:王姓并且(年龄小于40或邮箱不为空)

@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);
}

写法2:Mapper + 条件(不推荐)

需求1:多个条件查询(名字中带“张”且年龄小于30岁)

@Autowired
private UserMapper userMapper;

public void selectWrapper15() {
    // 方式1(推荐使用,因为此方法是静态的)
    LambdaQueryWrapper<User> queryWrapper = Wrappers.<User>lambdaQuery();

    // 方式2
    // LambdaQueryWrapper<User> queryWrapper = new QueryWrapper<User>().lambda();

    // 方式3
    // LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();

    queryWrapper.like(User::getName, "张").lt(User::getAge, 30);
    List<User> users = userMapper.selectList(queryWrapper);
    users.forEach(System.out::println);
}

猜你喜欢

转载自blog.csdn.net/feiying0canglang/article/details/125508631