- 博客(35)
- 收藏
- 关注
原创 Swagger注解基本使用
在Spring Boot中,Swagger是一个非常流行的工具,用于自动生成、描述、调用和可视化RESTful风格的Web服务。Swagger通过注解来标识接口和模型,自动生成API文档,极大地简化了前后端开发人员之间的沟通与协作。
2024-09-25 23:17:49 478
原创 Druid连接池使用教程
Druid是一个开源的Java数据库连接池库,由阿里巴巴集团开发并维护。它提供了一套高性能、稳定可靠的数据库连接池解决方案,广泛用于管理数据库连接,特别是适用于高并发、高性能、稳定可靠的数据库连接管理场景。
2024-09-25 15:52:27 812
原创 SpringBoot整合MyBatis-Plus
文件中添加MyBatis-Plus和MySQL的依赖。根据需要创建Service层和Controller层,以完成业务逻辑和对外提供RESTful API。在项目中创建与数据库表对应的实体类,并使用MyBatis-Plus提供的注解进行标记。接口,以便使用MyBatis-Plus提供的CRUD方法。创建Mapper接口,并继承MyBatis-Plus的。文件,配置数据库连接信息。
2024-09-24 21:44:28 707
原创 Lombok基本使用
Lombok是一个Java库,它通过注解来简化Java代码的编写,自动生成诸如getter和setter方法、构造函数、equals和hashCode方法等常见的代码,从而减少开发者的重复劳动,提高代码的可读性和开发效率。
2024-09-23 22:39:51 679
原创 全局统一返回结果类封装和全局统一异常处理
通常,我们会定义一个基础的响应类,该类包含状态码、消息和数据三个基本字段。根据实际需要,还可以添加其他字段如时间戳等。这样,无论后端发生何种异常,前端接收到的都是结构一致的响应,便于前端进行统一处理。注解标记的方法处理不同类型的异常,并返回一个统一格式的。的结合体,用于全局异常处理并直接返回JSON响应体。在Spring Boot中,可以使用。定义统一的枚举code信息。注解来创建全局异常处理类。
2024-09-23 22:32:23 343
原创 Spring Boot 2.6.0中整合Swagger 3.0
Swagger 3.0已经集成了Spring Boot的启动器,所以只需引入一个依赖即可。在你的Controller和方法上使用Swagger提供的注解来增强API文档的可读性和可用性。现在,你应该能够看到生成的API文档,并能够测试你的API了。这是Swagger 3.0引入的新注解,用于替代Swagger 2.x中的。通常,你需要创建一个配置类来进一步配置Swagger,包括API的基本信息、扫描的包路径等。启动你的Spring Boot应用,并在浏览器中访问Swagger UI的URL(通常是。
2024-09-23 17:58:23 615
原创 SpringBoot集成Redis
如果我们存储的是对象,默认使用的是 JdkSerializationRedisSerializer,也就是Jdk的序列化方式(通过ObjectOutputStream和ObjectInputStream实现,缺点是我们无法直观看到存储的对象内容)。redis的序列化也是我们在使用RedisTemplate的过程中需要注意的事情。我们的配置工作准备就绪以后,我们就可以在项目中操作redis了,操作的话,使用spring-data-redis中为我们提供的 RedisTemplate 这个类,就可以操作了。
2024-09-20 15:49:38 971
原创 在Spring官网查看Springboot与Java的版本对应关系
此外,如果你需要查看Spring Cloud与Spring Boot的版本对应关系,也可以访问SpringCloud官网,在那里你可以看到详细的版本对应表,或者通过请求接口获取相关信息。访问Spring官方网站,进入Spring Boot项目页面。为了查看特定版本的Java兼容性,可以选择一个具体的Spring Boot版本,然后点击该版本的“Reference Doc”(参考文档)。通过这种方式,你可以查看不同Spring Boot版本与Java版本的对应关系,并据此选择合适的版本进行项目开发。
2024-09-14 18:13:05 409
原创 查询进阶 - 开窗函数 - lag / lead
在上面的示例中,我们使用 Lag 函数获取每个学生的上一次考试成绩(previous_score),使用 Lead 函数获取每个学生的下一次考试成绩(next_score)。如果没有上一次或下一次考试,对应的列将显示为 NULL。请你编写一个 SQL 查询,返回每个学生的详细信息(字段顺序和原始表的字段顺序一致),并且按照分数降序的方式获取每个班级内的学生的前一名学生姓名(prev_name)、后一名学生姓名(next_name)。它可以帮助我们查看上一行的数据。它可以帮助我们查看下一行的数据。
2024-08-30 09:55:57 859
原创 查询进阶 - 开窗函数 - row_number
在上面的示例中,我们使用开窗函数 ROW_NUMBER 为每个客户的订单按照订单金额降序排列,并为每个订单分配了一个编号(row_number),并使用 PARTITION BY 子句按照 customer_id 进行分组,并使用 ORDER BY 子句按照 total_amount 进行排序。每一行都有一个唯一的行号,从 1 开始连续递增。请你编写一个 SQL 查询,返回每个学生的详细信息(字段顺序和原始表的字段顺序一致),并且按照分数降序的方式给每个班级内的学生分配一个编号(row_number)。
2024-08-30 09:40:57 845
原创 查询进阶 - 开窗函数 - rank
在上面的示例中,我们使用开窗函数 RANK 来为每个客户的订单按照订单金额降序排名(customer_rank),并使用 PARTITION BY 子句按照 customer_id 进行分组,并使用 ORDER BY 子句按照 total_amount 从大到小进行排序。在排名过程中,相同的值将被赋予相同的排名,而不同的值将被赋予不同的排名。请你编写一个 SQL 查询,返回每个学生的详细信息(字段顺序和原始表的字段顺序一致),并且按照分数降序的方式计算每个班级内的学生的分数排名(ranking)。
2024-08-30 09:34:42 1016
原创 查询进阶 - 开窗函数 - sum over order by
之前的教程中,我们讲到了 sum over 开窗函数,并且用它实现了分组统计。本节教程我们将学习 sum over 函数的另一种用法:sum over order by,可以实现同组内数据的。举一个应用场景:老师在每个班级里依次点名,每点到一个学生,老师都会记录当前已点到的学生们的分数总和。
2024-08-30 09:26:20 458
原创 查询进阶 - 开窗函数 - sum over
在 SQL 中,开窗函数是一种强大的查询工具,它允许我们在查询中进行对分组数据进行计算、。开窗函数可以与聚合函数(如 SUM、AVG、COUNT 等)结合使用,但与普通聚合函数不同,开窗函数不会导致结果集的行数减少。打个比方,可以将开窗函数想象成一种 "透视镜",它能够将我们聚焦在某个特定的分组,同时还能看到整体的全景。本节我们先讲第一个开窗函数:sum over。
2024-08-29 15:20:11 321
原创 查询进阶 - 组合查询
现在,我们想要合并这两张表的数据,分别执行 UNION 操作和 UNION ALL 操作。在 SQL 中,组合查询是一种将多个 SELECT 查询结果合并在一起的查询操作。UNION ALL 操作:它也用于将两个或多个查询的结果集合并,包括两种常见的组合查询操作:UNION 和 UNION ALL。请编写一条 SQL 语句,获取所有学生表和新学生表的学生姓名(UNION 操作:它用于将两个或多个查询的结果集合并,即如果两个查询的结果有相同的行,则只保留一行。即如果两个查询的结果有相同的行,则全部保留。
2024-08-29 14:51:16 257
原创 查询进阶 - 子查询 - exists
其中,子查询中的一种特殊类型是 "exists" 子查询,用于检查主查询的结果集是否存在满足条件的记录,它返回布尔值(True 或 False),而不返回实际的数据。上述语句中,先遍历客户信息表的每一行,获取到客户编号;然后执行子查询,从订单表中查找该客户编号是否存在,如果存在则返回结果。之前的教程讲到,子查询是一种强大的查询工具,它可以嵌套在主查询中,帮助我们进行更复杂的条件过滤和数据检索。请你编写一个 SQL 查询,使用 exists 子查询的方式来获取。学生的所有数据,返回学生姓名(
2024-08-29 14:49:52 392
原创 查询进阶 - 子查询
打个比方,子查询就像是在一个盒子中的盒子,外层查询是大盒子,内层查询是小盒子。在上述 SQL 中,先通过子查询从订单表中过滤查询出了符合条件的客户 id,然后再根据客户 id 到客户信息表中查询客户信息,这样可以少查询很多客户信息数据。当执行包含子查询的查询语句时,数据库引擎会首先执行子查询,然后将其结果作为条件或数据源来执行外层查询。另一个完整的查询语句,内层查询被称为子查询。请你编写一个 SQL 查询,使用子查询的方式来获取存在对应班级的学生的所有数据,返回学生姓名(子查询是指在一个查询语句内部。
2024-08-29 14:42:50 271
原创 查询进阶 - 关联查询 - outer join
在 OUTER JOIN 中,包括 LEFT OUTER JOIN 和 RIGHT OUTER JOIN 两种类型,它们分别表示查询左表和右表的所有行(即使没有被匹配),再加上满足条件的交集部分。在 SQL 中,OUTER JOIN 是一种关联查询方式,它根据指定的关联条件,将两个表中满足条件的行组合在一起,并。其实只需要把主表(from 后面的表)和关联表(LEFT JOIN 后面的表)顺序进行调换即可!请你编写一个 SQL 查询,根据学生表和班级表之间的班级编号进行匹配,返回学生姓名(
2024-08-29 14:36:29 415
原创 查询进阶 - 关联查询 - inner join
在 SQL 中,INNER JOIN 是一种常见的关联查询方式,它根据两个表之间的关联条件,将满足条件的行组合在一起。我们会发现,使用 INNER_JOIN 后,只有两个表之间存在对应关系的数据才会被放到查询结果中。注意,INNER JOIN 只返回两个表中满足关联条件的交集部分,即在两个表中都存在的匹配行。请你编写一个 SQL 查询,根据学生表和班级表之间的班级编号进行匹配,返回学生姓名(使用 INNER JOIN 进行关联查询,根据员工表和部门表之间的公共字段。
2024-08-29 14:30:58 251
原创 maven的5种打包方式:springboot-maven-plugin详解
spring-boot-maven-plugin插件,会将依赖的jar包全部打包进去。该文件包含了所有的依赖和资源文件,可以直接在命令行或者传统的 Java Web 服务器上启动运行。--使用的插件列表。-->--plugin元素包含描述插件所需要的信息。-->--插件在仓库里的group ID -->--插件在仓库里的artifact ID -->--被使用的插件的版本(或版本范围) -->
2024-08-27 17:49:26 2208
原创 windows安装Rabbitmq
6.删除目录C:\Windows\System32\config\systemprofile中的.erlang.cookie文件(如果有的话)。2.下载完成后停止Erlang和RabbitMQ服务并进入原本Erlang和RabbitMQ的安装目录,运行Uninstall.exe。8.删除目录C:\Users\用户名\AppData\Roaming目录下的RabbitMQ文件夹。7.删除目录C:\Users\用户名 中的.erlang.cookie文件(如果有的话)。
2024-07-29 13:55:22 847
原创 Stream流畅编程
该方法会将流中的第一个元素作为初始值,然后将初始值与下一个元素传递给BinaryOperator函数进行计算,得到的结果再与下一个元素进行计算,以此类推,直到遍历完所有元素。而映射操作本身的优点在于,可以通过简单的函数变换实现对原始数据的转换,减少了繁琐的循环操作,提高了代码的可读性和维护性。需要注意的是,Stream 对象是一种一次性使用的对象,它只能被消费一次。Stream API 提供了丰富的操作方法,可以对 Stream 中的元素进行各种转换、过滤、映射、聚合等操作,从而实现对数据的处理和操作。
2024-07-19 17:10:56 824
原创 查询进阶 - 关联查询 - cross join
请你编写一个 SQL 查询,将学生表和班级表的所有行组合在一起,并返回学生姓名(student_name)、学生年龄(student_age)、班级编号(class_id)以及班级名称(class_name)。注意,在多表关联查询的 SQL 中,我们最好在选择字段时指定字段所属表的名称(比如 e.emp_name),还可以通过给表起别名(比如 employees e)来简化 SQL 语句。,包含以下字段:id(学号)、name(姓名)、age(年龄)、class_id(班级编号);
2024-04-28 15:48:14 260
原创 分组聚合 - having 子句
请你编写一个 SQL 查询,统计学生表中班级的总成绩超过 150 分的班级编号(class_id)和总成绩(total_score)。在 SQL 中,HAVING 子句用于在分组聚合后对分组进行过滤。它允许我们对分组后的结果进行条件筛选,只保留满足特定条件的分组。HAVING 子句与条件查询 WHERE 子句的区别在于,WHERE 子句用于在。进行过滤,而 HAVING 子句用于在。
2024-04-28 15:31:37 209
原创 分组聚合 - 多字段分组
请你编写一个 SQL 查询,统计学生表中的班级编号(class_id),考试次数(exam_num)和每个班级每次考试的总学生人数(total_num)。有时,单字段分组并不能满足我们的需求,比如想统计学校里每个班级每次考试的学生情况,这时就可以使用多字段分组。多字段分组和单字段分组的实现方式几乎一致,使用。要查询使用多字段分组查询表中。
2024-04-28 15:08:07 282
原创 分组聚合 - 单字段分组
在 SQL 中,分组聚合是一种对数据进行分类并对每个分类进行聚合计算的操作。它允许我们按照指定的列或字段对数据进行分组,然后对每个分组应用聚合函数,如 COUNT、SUM、AVG 等,以获得分组后的汇总结果。举个例子:某个学校可以按照班级将学生分组,并对每个班级进行统计。查看每个班级有多少学生、每个班级的平均成绩。这样我们就能够对学校各班的学生情况有一个整体的了解,而不是单纯看个别学生的信息。请你编写一个 SQL 查询,统计学生表中的班级编号(class_id)和每个班级的平均成绩(avg_score)。
2024-04-28 14:57:01 267
原创 函数 - 聚合函数
请你编写一个 SQL 查询,汇总学生表中所有学生的总成绩(total_score)、平均成绩(avg_score)、最高成绩(max_score)和最低成绩(min_score)。它们可以对一组数据执行诸如计数、求和、平均值、最大值和最小值等操作。聚合函数通常在 SELECT 语句中配合 GROUP BY 子句使用,用于对分组后的数据进行汇总分析。在 SQL 中,聚合函数是一类用于对数据集进行。
2024-04-28 14:46:32 189
原创 函数 - 字符串处理
在 SQL 中,字符串处理是一类用于处理文本数据的函数。它们允许我们对字符串进行各种操作,如转换大小写、计算字符串长度以及搜索和替换子字符串等。字符串处理函数可以帮助我们在数据库中对字符串进行加工和转换,从而满足不同的需求。请你编写一个 SQL 查询,筛选出姓名为 '热dog' 的学生,展示其学号(id)、姓名(name)及其大写姓名(upper_name)。name = '热dog';1)使用字符串处理函数。2)使用字符串处理函数。3)使用字符串处理函数。
2024-04-28 14:43:58 285
原创 函数 - 时间函数
在 SQL 中,时间函数是用于处理日期和时间的特殊函数。它们允许我们在查询中操作和处理日期、时间、日期时间数据,从而使得在数据库中进行时间相关的操作变得更加方便和灵活。还有很多时间函数,比如计算两个日期的相差天数、获取当前日期对应的毫秒数等,实际运用时自行查阅即可,此处不做赘述。注意,这里的日期、日期时间和时间将根据当前的系统时间来生成,实际运行结果可能会因为当前时间而不同。请你编写一个 SQL 查询,展示所有学生的姓名(name)和当前日期(列名为 "当前日期")。date () as 当前日期。
2024-04-26 18:27:29 160
原创 基础语法 - 条件分支
请你编写一个 SQL 查询,将学生按照年龄划分为三个年龄等级(age_level):60 岁以上为 "老同学",20 岁以上(不包括 60 岁以上)为 "年轻",20 岁及以下、以及没有年龄信息为 "小同学"。举个例子:假设你是一位餐厅的服务员,客人点了不同的菜品,而你需要根据客人点的菜来确定服务的方式。它类似于其他编程语言中的 if else 条件判断语句,允许我们根据不同的条件选择不同的结果返回。返回结果应包含学生的姓名(name)和年龄等级(age_level),并按姓名升序排序。
2024-04-26 18:24:46 209
原创 SQL基础语法 - 截断和偏移
Limit用法:limit 起始下标m,长度n ,m是记录开始的index,默认从0开始,表示第一条记录,n是指从第m+1条开始,取n条。通过上述 SQL 查询语句,我们分别选取了待办事项表中的前两个任务和从第三个任务开始的两个任务,实现了数据的截断和偏移。的数据表,它存储了待办事项信息,包括任务名称(task_name)和截止日期(due_date)等。截断和偏移的一个典型的应用场景是分页,即网站内容很多时,用户可以根据页号每次只看部分数据。2)根据任务的编号,直接翻到需要查看的位置(即偏移)
2024-04-26 18:20:57 397
原创 docker安装部署mysql等
拉取mysql镜像:docker pull mysql ,默认后面追加 Using default tag: latestdocker images -a # -a表示所有有了mysql的镜像,便可以启动我们的数据库启动完成查看mysql容器是否运行,docker ps -a进入mysql,输入以下命令:离开容器的命令是:exit之后可以使用Navicat连接mysql数据库;
2024-03-22 19:25:57 191
原创 了解docker基本概念和基础命令
Docker是基于Go语言实现的在2013年发布的云开源项目,它利用了围绕容器这个现有的计算概念,特别是在Linux世界中,这些原始概念被称为cgroups和命名空间。Docker的技术之所以独特是因为它专注于开发人员和系统操作员的需求,以将应用程序依赖项与基础架构分开。
2024-03-21 19:42:03 1324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人