ChainChain 是 Mybatis-Plus 提供的一种链式编程风格,它允许开发者以更加简洁和直观的方式编写数据库操作代码。Chain 分为 query 和 update 两大类,分别用于查询和更新操作。每类又分为普通链式和 lambda 链式两种风格,其中 lambda 链式提供了类型安全的查询条件构造,但不支持 Kotlin。 使用步骤query:提供链式查询操作,可以连续调用方法来构建查询条件。 1234// 链式查询 普通QueryChainWrapper<T> query();// 链式查询 lambda 式。注意:不支持 KotlinLambdaQueryChainWrapper<T> lambdaQuery(); 示例:12345// 普通链式查询示例query().eq("name", "John").list(); // 查询 name 为 "John" 的所有记录// lambda 链式查询示例lambdaQuery().eq(User::getAge, 30).one(); ...
一.持久层接口补充1.Mapper 层选装件选装件是 Mybatis-Plus 提供的一些扩展方法,它们位于 com.baomidou.mybatisplus.extension.injector.methods 包下。这些方法需要配合 Sql 注入器使用,以扩展 Mapper 接口的功能。 使用这些选装件前,需要确保已经正确配置了 Sql 注入器。 选装件说明1>alwaysUpdateSomeColumnById1int alwaysUpdateSomeColumnById(T entity); 源码:12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package com.baomidou.mybatisplus.extension.injector.methods;import com.baomidou.mybat ...
持久层接口Mapper Interface<span style="color:red">BaseMapper 是 Mybatis-Plus 提供的一个通用 Mapper 接口,它封装了一系列常用的数据库操作方法,包括增、删、改、查等。<span style="color:red">通过继承 BaseMapper,开发者可以快速地对数据库进行操作,而无需编写繁琐的 SQL 语句。 提示: 泛型 T 为任意实体对象 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键 对象 Wrapper 为 条件构造器 步骤有: Mapper 接口定义 Mapper 接口,并继承 MyBatis-Plus 提供的 BaseMapper 接口。BaseMapper 已经包含了基本的 CRUD 操作。 1234@Mapperpublic interface UserMapper extends BaseMapper<User> { ...
持久层接口本文详细介绍了 MyBatis-Plus 进行持久化操作的各种方法,包括插入、更新、删除、查询和分页等。通过本文,您可以了解到 MyBatis-Plus 提供的各种方法是如何进行数据操作的,以及它们对应的 SQL 语句。 Service Interface<span style="color:red">IService 是 MyBatis-Plus 提供的一个通用 Service 层接口,它封装了常见的 CRUD 操作,包括插入、删除、查询和分页等。<span style="color:red">通过继承 IService 接口,可以快速实现对数据库的基本操作,同时保持代码的简洁性和可维护性。 IService 接口中的方法命名遵循了一定的规范,如 get 用于查询单行,remove 用于删除,list 用于查询集合,page 用于分页查询,这样可以避免与 Mapper 层的方法混淆。 提示: 泛型 T 为任意实体对象 建议如果存在自定义通用 Service 方法的可能,请创建自己的 IBaseService ...
条件构造器补充知识TypeHandler在 wrapper 中使用 typeHandler 需要特殊处理利用 formatSqlMaybeWithParam 方法 12345// 查询queryWrapper.apply("type={0,typeHandler="+ MyTypeHandler.class.getCanonicalName()+ "}", "待处理字符串");// 更新updateWrapper.setSql("type={0,javaType=string,jdbcType=VARCHAR,typeHandler=xxx.xxx.MyTypeHandler}", "待处理字符串"); 使用提示: 通过使用 MyBatis-Plus 的 Wrapper 条件构造器,开发者可以更加高效地构建复杂的数据库查询条件,同时保持代码的简洁性和安全性。以下是一些注意事项与推荐做法: 在使用 Wrapper 时,尽量使用 Lambda 表达 ...
一.条件构造器方法1.eqSqleqSql 方法是 MyBatis-Plus 中用于构建查询条件的高级方法之一,允许你设置一个字段等于(EQ)某个 SQL 语句的结果。这个方法特别适用于需要将字段值与子查询结果进行比较的场景。 方法签名12345// 设置指定字段等于 SQL 语句的结果eqSql(R column, String inValue)// 在条件满足时设置指定字段等于 SQL 语句的结果eqSql(boolean condition, R column, String inValue) 参数说明column:数据库字段名或使用 Lambda 表达式的字段名。 inValue:一个字符串,包含用于生成等于条件的 SQL 语句。 condition:一个布尔值,用于控制是否应用这个等于条件。 示例普通 Wrapper (QueryWrapper): 12QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eqSql("id", "sel ...
课外开发
未读套餐管理1. Controller12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091package com.sky.controller.admin;import com.sky.dto.SetmealDTO;import com.sky.dto.SetmealPageQueryDTO;import com.sky.result.PageResult;import com.sky.result.Result;import com.sky.service.SetmealService;import com.sky.vo.SetmealVO;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;imp ...
1.1 Lambda 表达式的语法基本语法:(parameters) -> expression 或 (parameters) ->{ statements; } Lambda 表达式由三部分组成: paramaters:类似方法中的形参列表,这里的参数是函数式接口里的参数。这里的参数类型可以明确的声明也可不声明而由 JVM 隐含的推断。另外当只有一个推断类型时可以省略掉圆括号。 ->:可理解为“被用于”的意思 方法体:可以是表达式也可以代码块,是函数式接口里方法的实现。代码块可返回一个值或者什么都不反回,这里的代码块块等同于方法的方法体。如果是表达式,也可以返回一个值或者什么都不反回。 最经典的比如 java 中的 forEach 方法: 12345678910import java.util.Arrays;import java.util.List;public class LambdaExample { public static void main(String[] args) { List<String> ...
一.条件构造器方法1.eqeq 方法是 MyBatis-Plus 中用于构建查询条件的基本方法之一,它用于设置单个字段的相等条件。 使用范围QueryWrapper LambdaQueryWrapper UpdateWrapper LambdaUpdateWrapper 方法签名12345// 设置指定字段的相等条件eq(R column, Object val)// 根据条件设置指定字段的相等条件eq(boolean condition, R column, Object val) 参数说明column:数据库字段名或使用 Lambda 表达式的字段名。val:与字段名对应的值。condition:一个布尔值,用于控制是否应用这个相等条件。 示例普通 Wrapper (QueryWrapper): 12QueryWrapper<User> queryWrapper = new QueryWrapper<>();queryWrapper.eq("name", "老王"); Lambda Wrapper (Lambda ...
一.条件构造器MyBatis-Plus 提供了一套强大的条件构造器(Wrapper),用于构建复杂的数据库查询条件。Wrapper 类允许开发者以链式调用的方式构造查询条件,无需编写繁琐的 SQL 语句,从而提高开发效率并减少 SQL 注入的风险。 在 MyBatis-Plus 中,Wrapper 类是构建查询和更新条件的核心工具。以下是主要的 Wrapper 类及其功能: AbstractWrapper:这是一个抽象基类,提供了所有 Wrapper 类共有的方法和属性。它定义了条件构造的基本逻辑,包括字段(column)、值(value)、操作符(condition)等。所有的 QueryWrapper、UpdateWrapper、LambdaQueryWrapper 和 LambdaUpdateWrapper 都继承自 AbstractWrapper。 QueryWrapper:专门用于构造查询条件,支持基本的等于、不等于、大于、小于等各种常见操作。它允许你以链式调用的方式添加多个查询条件,并且可以组合使用 and 和 or 逻辑。 UpdateWrapper:用于构造更新条件, ...