1.分页查询(后端)—— Vue3 + SpringCloud 5 + MyBatisPlus + MySQL 项目系列(基于 Zulu 11)
本手册是基于 Vue3 + SpringCloud5 + MyBatisPlus + MySQL 的项目结构和代码实现,旨在作为一个教学案例进行讲解。为了使案例更具普适性,文档中的公司名称、实体类、表名以及字段名称等敏感信息均已脱敏。
项目结构概述
项目采用标准的分层架构,划分为 common模块、gateway模块 和 业务模块。每个模块都对应特定的职责,确保代码的可维护性和清晰度。以下是项目的基本目录结构:
├─common-module
│ │ pom.xml
│ ├─src
│ │ └─main
│ │ ├─java
│ │ │ └─com
│ │ │ └─example
│ │ │ └─common
│ │ │ ├─constant
│ │ │ │ ResultConstant.java
│ │ │ ├─entity
│ │ │ │ Storage.java
│ │ │ ├─enums
│ │ │ │ ResultEnum.java
│ │ │ └─util
│ │ │ PageData.java
│ │ │ Result.java
│ │
├─gateway-module
└─business-module│ pom.xml├─src│ ├─main│ │ ├─java│ │ │ └─com│ │ │ └─example│ │ │ └─business│ │ │ │ BusinessApplication.java│ │ │ ├─config│ │ │ │ MyBatisPlusConfig.java│ │ │ │ WebConfig.java│ │ │ ├─mapper│ │ │ │ StorageMapper.java│ │ │ ├─service│ │ │ │ │ StorageService.java│ │ │ │ └─impl│ │ │ │ StorageServiceImpl.java│ │ │ └─web│ │ │ └─controller│ │ │ StorageController.java│ │ └─resources│ │ │ application.yml│ │ └─mapper│ │ StorageMapper.xml
模块说明
- common-module: 公共模块,包含常量、实体类、枚举类和工具类等基础代码,供其他模块复用。
- gateway-module: API 网关模块,负责请求转发、负载均衡等功能。
- business-module: 业务逻辑模块,包含具体的服务、控制器、数据访问层等。
核心技术
1. SpringCloud 5
SpringCloud 是微服务架构的核心框架,提供了服务注册与发现、负载均衡、断路器等重要功能。本项目通过 SpringCloud 构建微服务,并使用网关模块进行统一入口管理。
2. MyBatis-Plus
MyBatis-Plus 是 MyBatis 的增强工具,简化了单表的 CRUD 操作。本项目利用它来实现对数据库的高效访问。MyBatis-Plus 提供的 Page 类非常适合分页查询。
3. Vue3
Vue3 是前端框架,负责与后端进行交互并展示数据。本文档重点在后端,前端部分暂不展开。
4. MySQL
MySQL 是关系型数据库,存储我们的业务数据。本项目使用 MyBatis-Plus 与 MySQL 进行集成,通过实体类映射表结构来实现数据库操作。
关键代码实现
1. 实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("storage_table")
public class Storage {private String companyName;@TableIdprivate Long id;// 其他字段...
}
2. 数据访问层 (Mapper)
public interface StorageMapper extends BaseMapper<Storage> {/*** 分页查询仓库信息* @param page 分页参数* @param name 仓库名称(模糊查询,允许为空)* @return 分页结果*/Page<Storage> findByPage(@Param("page") Page<Storage> page, @Param("name") String name);
}
3. 服务层 (Service)
@Service
public class StorageServiceImpl implements StorageService {@Autowiredprivate StorageMapper storageMapper;@Overridepublic Page<Storage> findByPage(String name, int pageNum, int pageSize) {Page<Storage> page = new Page<>(pageNum, pageSize);QueryWrapper<Storage> queryWrapper = new QueryWrapper<>();if (name != null && !name.isEmpty()) {queryWrapper.like("name", name);}return storageMapper.selectPage(page, queryWrapper);}
}
4. 控制层 (Controller)
@RestController
@RequestMapping("/storage")
public class StorageController {@Autowiredprivate StorageService storageService;@GetMapping("/findByPage")public Result<PageData<List<Storage>>> findByPage(Integer pageNum,Integer pageSize,String name) {if (pageNum == null || pageNum <= 0) {pageNum = 1;}if (pageSize == null || pageSize <= 0) {pageSize = 10;}Page<Storage> storagePage = storageService.findByPage(name, pageNum, pageSize);PageData<List<Storage>> pageData = new PageData<>(storagePage.getRecords(), storagePage.getTotal());return Result.ok(pageData);}
}
5. Mapper XML 文件
<mapper namespace="com.example.business.mapper.StorageMapper"><select id="findByPage" resultType="com.example.common.entity.Storage">SELECTid,company_name AS companyName,type,name,company_id AS companyId,manager,phone,address,area,state,create_time AS createTime,update_time AS updateTimeFROM storage_table<where><if test="name != null and name != ''">AND name LIKE CONCAT('%', #{name}, '%')</if></where></select>
</mapper>
结论
通过该项目结构,可以看到微服务架构下如何通过 SpringCloud 进行模块化拆分,以及通过 MyBatis-Plus 实现高效的数据访问。整个项目结构清晰,适合进行扩展,代码层次分明,易于维护。
相关文章:
1.分页查询(后端)—— Vue3 + SpringCloud 5 + MyBatisPlus + MySQL 项目系列(基于 Zulu 11)
本手册是基于 Vue3 SpringCloud5 MyBatisPlus MySQL 的项目结构和代码实现,旨在作为一个教学案例进行讲解。为了使案例更具普适性,文档中的公司名称、实体类、表名以及字段名称等敏感信息均已脱敏。 项目结构概述 项目采用标准的分层架构࿰…...
机器学习与深度学习的区别:深入理解与应用场景
在人工智能(AI)的广阔领域中,机器学习和深度学习是两个核心概念,它们虽然紧密相关,但在定义、技术、数据处理能力、应用场景等方面存在显著差异。本文将深入探讨这些区别,帮助读者更好地理解并选择合适的技…...
C++学习笔记(45)
322、循环队列、信号量、生产/消费者模型的源代码 一、demo1.cpp // demo1.cpp,本程序演示循环队列的使用。 #include "_public.h" int main() { using ElemTypeint; squeue<ElemType,5> QQ; ElemType ee; // 创建一个数据元素。 cout << &qu…...
【2】图像视频的加载和显示
文章目录 【2】图像视频的加载和显示一、代码在哪写二、创建和显示窗口(一)导入OpenCV的包cv2(二)创建窗口(三)更改窗口大小 & 显示窗口(四)等待用户输入补充:ord()函…...
1. BOOT.BIN 2. 固化 3. 启动 4. SDK 5. 文件
在进行FPGA的开发与固化过程中,生成BOOT.BIN文件是一个重要的步骤。BOOT.BIN文件通常包含了系统启动所需的不同文件,以下是如何创建和使用该文件的详细说明。 ### 生成BOOT.BIN文件的步骤 1. **方法一:通过项目构建** - 右键单击项目…...
vue按钮接收键盘回车事件
了解了!如果您想让 Submit 按钮在按下回车键时被触发,可以在 Vue 组件中监听全局的键盘事件。以下是实现这一功能的示例: 示例代码 <template><div><inputtype"text"v-model"inputValue"placeholder&qu…...
腾讯云点播及声音上传
文章目录 1、开通腾讯云点播2、获取腾讯云API密钥3、完成声音上传3.1、引入依赖3.2、参考:接入点地域3.3、参考:任务流设置3.4、首先修改配置:3.4.1、 3.5、TrackInfoApiController --》 uploadTrack()3.6、VodServiceImpl --》 uploadTrack(…...
如何查看服务器是否有raid阵列卡以及raid类型
要查看服务器是否配置了RAID阵列卡以及RAID的类型,可以使用多种方法。以下是一些常用的命令和步骤: 1. 使用 lspci 命令 这个命令可以列出所有的PCI设备,包括RAID控制器。 lspci | grep -i raid 如果输出中有RAID相关的设备信息,那…...
工博会动态 | 来8.1馆 看桥田如何玩转全场
北京时间2024年9月24日,中国国际工业博览会开幕,桥田智能(8.1馆A001)推出心意三重奏,有没有小伙伴们发现呢?现在,让我们一起city walk下! 桥田显眼包横空出道 有小伙伴已经发现&…...
新版torch_geometric不存在uniform、maybe_num_nodes函数问题(Prune4ED论文报错解决)
这是在复现论文“Towards accurate subgraph similarity computation via neural graph pruning”时遇到的报错。 ImportError: cannot import name uniform from torch_geometric.nn.pool.topk_pool 一、报错原因 论文作者使用的是2.1.0版本的torch_geometric。而我安装了2.…...
实现简易 vuedraggable 的拖拽排序功能
一、案例效果 拖拽计数4实现手动排序 二、案例代码 <draggable:list"searchResult.indicator":group"{ name: indicators }"item-key"field"handle".drag-handle-icon"><divclass"field-item"v-for"(item…...
第L2周:机器学习|线性回归模型 LinearRegression:2. 多元线性回归模型
本文为365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: ●1. 学习本文的多元线形回归模型。 ●2. 参考文本预测花瓣宽度的方法,选用其他三个变量来预测花瓣长度。 一、多元线性回归 简单线性回归:影响 Y 的因素唯一&…...
JavaScript的条件语句
if条件语句 if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是JavaScript 的两个特殊值,true表示真,false表示伪。 if语句语法规范 if(布尔值){语句;}var m3if(m3){console.l…...
vue3 vite模式配置测试,开发、生产环境以及代理配置
1、首先在根目录下创建三个文本文件:.env.development,.env.production,.env.test .env.development中的内容为: // 开发环境 .env.development NODE_ENV development VITE_APP_MODE development VITE_OUTPUTDIR dist_dev /…...
【rabbitmq-server】安装使用介绍
在 1050a 系统下安装 rabbitmq-server 服务以及基本配置;【注】:改方案用于A版统信服务器操作系统 文章目录 功能概述功能介绍一、安装软件包二、启动服务三、验证四、基本配置功能概述 RabbitMQ 是AMQP的实现,高性能的企业消息的新标准。RabbitMQ服务器是一个强大和可扩展…...
Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优
Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优 一、CMAK二、要求三、配置四、启动服务五、使用 Security 启动服务六、消费者/生产者滞后七、从 Kafka Manager 迁移到 CMAK八、CMAK管理大型Kafka集群参数调优九、后台运行CMAK十、输出日志一、CMAK CMAK(之前称为…...
c语言200例 64
大家好,欢迎来到无限大的频道。 今天带领大家来学习c语言。 题目要求: 设计一个进行候选人的选票程序。假设有三位候选人,在屏幕上输入要选择的候选人姓名, 有10次投票机会,最后输出每个人的得票结果。好的ÿ…...
[leetcode]216_组合总和III_给定数字范围且输出无重复
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解释: 1…...
Doris 2.x 安装及使用
Doris 2.x 安装及使用 简介 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持…...
MySQL字符集设置
MySQL字符集设置 一、查看当前配置的字符集 \s;示例 MariaDB [(none)]> \s -------------- mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1Connection id: 11 Current database: Current user: rootlocalhost SSL: …...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
