优秀的编程知识分享平台

网站首页 > 技术文章 正文

Mybatis Plus框架学习指南-第六节内容(常用的类 1)

nanyue 2025-07-27 22:57:45 技术文章 2 ℃

Page

基本概念

简单分页模型,该类实现了IPage接口,实现了简单分页模型,如果你要实现自己的分页模型可以继承 Page 类或者实现 IPage 接口。

源码

属性

record

查询数据列表

total

总数

size

每页显示条数,默认 10

current

当前页

orders

排序字段信息

Wrapper

基本概念

条件构造抽象类,主要用于构建 SQL 查询条件,简化数据库操作,尤其是动态查询。它是一个强大的工具,可以帮助开发者方便地构建复杂的查询语句。

源码

作用

1、动态条件构建:Wrapper 提供了灵活的方式来构建查询条件,可以根据业务逻辑动态添加条件。

2、条件链式调用:支持链式调用,代码更加简洁和可读。例如,可以在一个语句中连续添加多个查询条件。

3、自动化 SQL 生成:通过 Wrapper,MyBatis Plus 可以自动生成 SQL 语句,减少了手写 SQL 的需求。

Wrappers

基本概念

Wrapper 条件构造,Wrappers 类是一个工具类,用于创建各种类型的 Wrapper 对象(如 QueryWrapper 和 UpdateWrapper),以便更方便地构建 SQL 查询条件。

源码

方法

public static <T> QueryWrapper<T> query()

public static <T> QueryWrapper<T> query(T entity)

作用

1、简化 Wrapper 创建:Wrappers 类提供了一些静态方法,可以快速创建 Wrapper 实例,避免手动构建对象时的繁琐。

2、动态 SQL 构建:通过 Wrappers 提供的方法,可以轻松构建动态 SQL 条件,支持链式调用,使代码更加简洁。

3、提升可读性和维护性:使用 Wrappers 可以减少样板代码,提高代码的可读性和维护性。

示例

QueryWrapper 示例

UpdateWrapper 示例

LambdaQueryWrapper 示例

AbstractWrapper

基本概念

AbstractWrapper 类是一个抽象基类,用于构建查询条件的包装器。它是 MyBatis Plus 提供的一种方便的方式来动态生成 SQL 查询语句。AbstractWrapper 类提供了一系列方法,允许你以面向对象的方式构建查询条件,并将其转换为 SQL 语句执行数据库查询。通过 AbstractWrapper,你可以避免手动拼接 SQL 字符串,提高代码的可读性和维护性。

源码

方法

allEq

用于设置多个字段的等于条件,并且可以通过 condition 参数控制是否启用该条件。condition用于指定是否启用该条件,params是一个Map对象,键表示要设置等于条件的字段,值表示对应字段的值,null2IsNull` 参数表示是否将值为 null 的条件视为等于条件。

eq

等于条件,用于指定字段等于某个特定值。

ne

不等于条件,用于指定字段不等于某个特定值。

gt

大于条件,用于指定字段大于某个特定值。

ge

大于等于条件,用于指定字段大于等于某个特定值。

lt

小于条件,用于指定字段小于某个特定值。

le

小于等于条件,用于指定字段小于等于某个特定值。

between

notBetween

like

模糊匹配条件,用于指定字段满足某种模式。

notLike

in

包含条件,用于指定字段的值在给定的列表中

orderByAsc(column)

升序排序条件,用于指定结果按照某个字段升序排序。

orderByDesc(column)

降序排序条件,用于指定结果按照某个字段降序排序。

apply(boolean condition, String applySql, Object… values)

应用自定义的sql语句

LambdaQueryWrapper

基本概念

LambdaQueryWrapper 类是 MyBatis Plus 中的一个条件构造器,用于构建查询操作的条件。与 QueryWrapper 类相比,LambdaQueryWrapper 类具有更加简洁优雅的语法,通过使用 Lambda 表达式来指定字段和条件,使得代码更易读、更具可维护性。使用 LambdaQueryWrapper 类可以在编译期对语法错误进行检查,避免了拼写错误或表达式类型不匹配等问题。

源码

作用

1、类型安全

使用 Lambda 表达式,可以避免硬编码字段名时的拼写错误,从而提高代码的安全性和可维护性。

2、简化查询条件构建

支持链式调用,便于构建复杂查询。

代码示例

LambdaUpdateWrapper类与LambdaQueryWrapper类的区别

MyBatis-Plus中的LambdaQueryWrapper和LambdaUpdateWrapper类都是用于构建查询条件的工具类,但它们在使用场景和功能上有一些区别。

作用

1、LambdaQueryWrapper

主要用于构建查询条件。用于 SELECT 操作,获取数据。

2、LambdaUpdateWrapper

主要用于构建更新条件。用于 UPDATE 操作,更新数据。

功能

LambdaQueryWrapper

基本查询:用于定义查询条件,如等于、不等于、大于、小于等。

逻辑操作:支持与、或等逻辑操作。

排序和分组:可以添加排序和分组条件。

LambdaUpdateWrapper

基本更新:用于定义更新条件和要更新的字段。

逻辑操作:可以根据条件更新特定记录。

批量更新:可以一次性更新多条记录。

总结

1、LambdaQueryWrapper 主要用于构建查询条件,适用于 SELECT 操作。

2、LambdaUpdateWrapper 主要用于构建更新条件,适用于 UPDATE 操作。

3、两者都提供了类型安全的方式来操作数据库,但适用于不同的场景。

QueryChainWrapper

基本概念

QueryChainWrapper继承自AbstractChainWrapper,提供了流畅的链式API来构建查询条件,避免了手动创建QueryWrapper的繁琐操作。

源码

核心特性

1、链式调用

2、直接执行

主要方法

查询条件方法

逻辑连接

排序方法

终端操作

示例

1、简单查询

2、复杂条件查询

3、条件分组

注意事项

1、性能考虑

链式调用内部仍然构建QueryWrapper,性能与传统方式相同

2、可读性

链式调用提高了代码可读性,但复杂条件建议适当换行

3、调试

可以通过.getSqlSegment()查看生成的SQL片段

4、类型安全

建议使用Lambda表达式版本避免硬编码字段名

总结

QueryChainWrapper通过链式API大大简化了查询代码的编写,提高了开发效率和代码可读性。

LambdaQueryChainWrapper

基本概念

LambdaQueryChainWrapper 是一个链式调用的查询构建器,允许用户使用 Lambda 表达式来指定查询条件。与传统的字符串方式相比,它极大地减少了错误的可能性,并且在重构字段名称时能够提供更好的支持。

主要功能

1、类型安全

通过 Lambda 表达式确保字段名称的正确性,避免字符串拼写错误。

2、链式调用

支持流畅的链式编程风格,提升代码可读性。

3、支持多种查询条件

提供多种条件,如等于、不等于、大于、小于、模糊查询等。

示例代码

LambdaQueryWrapper类与LambdaQueryChainWrapper类的区别

使用方式

LambdaQueryWrapper

创建查询条件: 该类用于构建查询条件,但需要手动调用 .select() 或 .list() 等方法来执行查询。

LambdaQueryChainWrapper

链式调用: 该类支持链式调用,并且可以直接执行查询,无需单独创建查询条件对象。

功能与特性

执行查询

1、LambdaQueryWrapper 需要通过 Mapper 的方法(如 list())来执行查询。

2、LambdaQueryChainWrapper 内部封装了执行逻辑,可以直接调用 list()、one() 等方法。

代码可读性

LambdaQueryChainWrapper 因为其链式调用的特性,通常使得代码更加简洁和易于理解。

适用场景

1、LambdaQueryWrapper 更加灵活,适合在复杂查询逻辑中单独构建条件。

2、LambdaQueryChainWrapper 适合快速、简单的查询场景,尤其是在需要频繁调用查询的场景中。

总结

选择建议

1、如果你需要构建较为复杂的查询条件,或者在不同地方复用同一个查询条件,使用 LambdaQueryWrapper 会更合适。

2、如果你希望代码简洁,快速实现查询,并且条件相对简单,则使用 LambdaQueryChainWrapper 更为方便。

QueryWrapper

基本概念

QueryWrapper 是 MyBatis Plus 提供的一个用于封装查询条件的类。通过它,你可以灵活地构造查询语句,而无需手动编写 SQL 语句。它提供了一种链式调用的方式来添加查询条件,使得代码更加简洁和可读。

源码

主要功能

1、构建查询条件

通过指定字段、操作符和参数来构造 SQL 查询条件。

2、支持链式调用

允许使用链式编程的方法逐步添加条件。

3、动态查询

可以根据条件动态构建查询,适应不同的查询场景。

示例代码

总结

1、QueryWrapper 是 MyBatis Plus 中用于构建 SQL 查询条件的工具。

2、通过链式调用,可以方便地组合多种条件。

3、支持丰富的查询操作,适用于多种查询场景。

4、适合动态生成查询条件,提高了代码的灵活性和可维护性。

UpdateWrapper

基本概念

用于构建更新操作的条件。UpdateWrapper 类继承自 AbstractWrapper,它提供了一系列方法,用于设置更新操作的条件,并生成对应的 SQL 更新语句。通过 UpdateWrapper,你可以方便地构建复杂的更新操作,而无需手动拼接 SQL 字符串。

方法

set(column, value)

设置要更新的字段及其对应的值。

setSql(column, sql)

使用原生 SQL 设置要更新的字段。 通过链式调用这些方法,你可以将多个条件组合在一起,并最终生成一个完整的 SQL 更新语句。

主要功能

1、构建更新条件

通过指定更新的字段和条件字段,生成相应的 SQL 更新语句。

2、链式调用

支持链式编程,使得代码简洁。

3、动态更新

根据条件动态生成需要更新的数据。

代码示例

总结

1、UpdateWrapper 是 MyBatis Plus 中用于构建更新操作的工具。

2、通过链式调用,可以方便地指定需要更新的字段和条件。

3、支持丰富的条件操作,为动态更新提供了极大的灵活性。

4、使用 UpdateWrapper 可以提高代码的可读性和维护性,减少手动拼接 SQL 时可能出现的错误。

Tags:

最近发表
标签列表