课外开发
未读一. HttpClient介绍HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的<span style="color:red">客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。 12345<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.14</version></dependency> 该项目导入了阿里的 sdk,传递依赖核心 API: HttpClient HttpClients CloseableHttpClient HttpGet HttpPost 发生请求步骤: 创建 HttpClient 对象 创建 Http 请求对象 调用 HttpClient 的 exe ...
课外开发
未读由于前面已经有系统学习 Redis 的文章,这里不再详细书写 Redis 的入门知识(数据结构、常用命令) 一. Java 中操作 RedisRedis 的 Java 客户端常见的几种: Jedis Lettuce Spring Data Redis(建议) Spring Data Redis 使用方式操作步骤: 导入 Spring data Redis 的 Maven 坐标pom.xml 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> 配置 Redis 数据源application.yml 1234spring: redis: host: localhost port: 6379 编写配置类,创建 RedisTemplate 对象RedisConfiguratio ...
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> ...