第二十六章: mybatis plus 如何使用LambdaQueryWrapper
和 QueryWrapper
目标
- 掌握
LambdaQueryWrapper
和QueryWrapper
的用法 - 掌握 List对象转map对象
- 掌握 List对象获取某字段的集合
LambdaQueryWrapper
和 QueryWrapper
是 MyBatis-Plus 中提供的查询条件构造器,用于简化 SQL 查询条件的构建。这两个类的主要区别在于 LambdaQueryWrapper
使用了 Java 8 的 Lambda 表达式,使得字段引用更为安全和简洁;而 QueryWrapper
则通过字符串来指定字段名。
实验
LambdaQueryWrapper 用法
- 基本查询
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getName, "John");
List<User> users = userMapper.selectList(queryWrapper);
- 排序
queryWrapper.orderByAsc(User::getAge);
- 多条件查询
queryWrapper.like(User::getEmail, "gmail")
.gt(User::getAge, 18);
- IN 查询
queryWrapper.in(User::getId, Arrays.asList(1, 2, 3));
- 选择字段
queryWrapper.select(User::getName, User::getAge);
QueryWrapper 用法
- 基本查询
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "John");
List<User> users = userMapper.selectList(queryWrapper);
- 排序
queryWrapper.orderByAsc("age");
- 多条件查询
queryWrapper.like("email", "gmail")
.gt("age", 18);
- IN 查询
queryWrapper.in("id", Arrays.asList(1, 2, 3));
- 选择字段
queryWrapper.select("name", "age");
总结
注意事项
- 使用
LambdaQueryWrapper
时,字段引用是通过方法引用实现的,如User::getName
,这样可以避免由于字段名拼写错误导致的运行时错误。 - 使用
QueryWrapper
时,需要直接提供字段名的字符串,因此如果字段名发生变化,你需要手动更新查询条件中的字段名。 - 为了保证查询的正确性,建议在使用
QueryWrapper
时,确保字段名的准确性,并在可能的情况下使用LambdaQueryWrapper
。
总之,LambdaQueryWrapper
和 QueryWrapper
都为 MyBatis-Plus 提供了强大的查询条件构造功能,你可以根据项目的需求和习惯选择使用。