MyBatis-Plus 基础:LambdaQueryWrapper详解与实例

2024-01-01 15:52

本文主要是介绍MyBatis-Plus 基础:LambdaQueryWrapper详解与实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LambdaQueryWrapper 是 MyBatis-Plus(一个 MyBatis 的增强工具)中用于构造 SQL 查询条件的一个非常强大的工具。它允许你以 Lambda 表达式的方式构建查询条件,从而避免了硬编码字段名,提供了类型安全,并且使得代码更加清晰和易于维护。

以下是 LambdaQueryWrapper 的一些基本操作和使用示例:

  1. 初始化

首先,你需要初始化一个 LambdaQueryWrapper 对象:

LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();

其中,User 是你的实体类。
2. 等于查询

使用 eq 方法进行等于查询:

queryWrapper.eq(User::getName, "John");

这将会生成 SQL 语句中的 name = 'John' 部分。
3. 模糊查询

使用 like 方法进行模糊查询:

queryWrapper.like(User::getName, "Jo");

这将会生成 SQL 语句中的 name LIKE '%Jo%' 部分。
4. 不等于查询

使用 ne 方法进行不等于查询:

queryWrapper.ne(User::getAge, 25);

这将会生成 SQL 语句中的 age <> 25 部分。
5. 大于、小于、大于等于、小于等于查询

使用 gt, lt, ge, le 方法进行范围查询:

queryWrapper.gt(User::getAge, 18);  // age > 18
queryWrapper.lt(User::getAge, 60);  // age < 60
queryWrapper.ge(User::getAge, 20);  // age >= 20
queryWrapper.le(User::getAge, 50);  // age <= 50
  1. 排序

使用 orderByAscorderByDesc 方法进行排序:

queryWrapper.orderByAsc(User::getAge);  // 按 age 升序排列
queryWrapper.orderByDesc(User::getName);  // 按 name 降序排列
  1. 自定义SQL

如果你需要自定义 SQL 片段,可以使用 apply 方法:

queryWrapper.apply("date_format(create_time, '%Y-%m-%d') = {0}", "2023-10-23");
  1. 选择字段

使用 select 方法选择需要查询的字段:

queryWrapper.select(User::getId, User::getName);  // 只查询 id 和 name 字段
  1. 逻辑操作
  • 使用 andor 进行逻辑与和逻辑或操作:
queryWrapper.eq(User::getType, 1).and(wrapper -> wrapper.gt(User::getAge, 18).lt(User::getAge, 60));  // type = 1 AND age > 18 AND age < 60
queryWrapper.eq(User::getType, 1).or().eq(User::getStatus, 1);  // type = 1 OR status = 1
  1. 查询
  • 最后,你可以将构造好的 LambdaQueryWrapper 对象传递给 MyBatis-Plus 的 Mapper 或 Service 方法进行查询:
List<User> users = userMapper.selectList(queryWrapper);  // 查询满足条件的用户列表

注意:以上代码示例是基于 MyBatis-Plus 的常见用法,但具体版本可能会有所不同,建议查阅你所使用的 MyBatis-Plus 版本的官方文档以获取最准确的信息。

这篇关于MyBatis-Plus 基础:LambdaQueryWrapper详解与实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/559755

相关文章

CSS will-change 属性示例详解

《CSSwill-change属性示例详解》will-change是一个CSS属性,用于告诉浏览器某个元素在未来可能会发生哪些变化,本文给大家介绍CSSwill-change属性详解,感... will-change 是一个 css 属性,用于告诉浏览器某个元素在未来可能会发生哪些变化。这可以帮助浏览器优化

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

基于SpringBoot+Mybatis实现Mysql分表

《基于SpringBoot+Mybatis实现Mysql分表》这篇文章主要为大家详细介绍了基于SpringBoot+Mybatis实现Mysql分表的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录基本思路定义注解创建ThreadLocal创建拦截器业务处理基本思路1.根据创建时间字段按年进

详解C++中类的大小决定因数

《详解C++中类的大小决定因数》类的大小受多个因素影响,主要包括成员变量、对齐方式、继承关系、虚函数表等,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 非静态数据成员示例:2. 数据对齐(Padding)示例:3. 虚函数(vtable 指针)示例:4. 继承普通继承虚继承5.

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

C#数据结构之字符串(string)详解

《C#数据结构之字符串(string)详解》:本文主要介绍C#数据结构之字符串(string),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录转义字符序列字符串的创建字符串的声明null字符串与空字符串重复单字符字符串的构造字符串的属性和常用方法属性常用方法总结摘