一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)
比如我们有一个订单记录管理界面
条件可以通过订单号、商品名称、创建日期范围、价格范围。。。来进行筛选查询。
首先我们先确定数据库订单表(我这里就不做连表了,都放在一个表中)模拟一个订单表
order表
| 订单号 | 商品名称 | 创建日期 | 价格 | 地址 | 用户 |
| 121 | 飞机 | 2023-03-23 | 199 | bj | xxx |
| 212 | 大炮 | 2023-04-23 | 29 | bj | xxx |
就比如我们有一个这样的订单表,
前端的话说一下思路,就不做演示了,我们将查询的每个字段当作参数传递给后端(我们可以通过order实体类来接受,此时要注意前端字段命名问题了,但是时间和价格都是一个范围,包括开始时间-结束时间,我们实体类中没有这个字段,此时我们就需要添加一个DTO来继承那个实体类,在DTO中添加这几个实体类中没有的但是我们查询过程中会用到的字段,通过DTO来接受参数,注意:前端通过JSON传入后端,后端通过@RequestBody接收)
如果不懂怎么写的可以去看下我的这个文章前后端交互问题
如果没什么特殊的业务操作我们的业务层和控制层基本不用写代码(记得时间要格式化);
实现条件查询做重要的的部分来了也就是我们的sql语句
这里我们使用mybatis的 .xml配置文件来写sql
这里sql中就用到动态拼接的方法,也就是<where> <if> ....
本文实现功能只用到了这两个,其他你们可以去了解
//这里的resultMap="BaseResultMap"可以改成resultType="DTO类的全路径"
<select id="selectOrder" resultMap="BaseResultMap">
select
tipo.id, tipo.prizes_name,tipo.Receive_address_id, tipo.create_time,
tipo.Audit_time,
tipo.integral, tipo.user_name
from
t_order tipo
<where>
'1'='1'
<if test="prizesName != null and prizesName != ''">
and tip.prizes_name = #{prizesName}
</if>
<if test="startIntegral != null and startIntegral != ''">
<if test="endIntegral != null and endIntegral != ''">
and tip.prizes_integral between #{startIntegral} and #{endIntegral}
</if>
</if>
<if test="changeStartTime != null and changeStartTime != ''">
<if test="changeEndTime != null and changeEndTime != ''">
and tipo.create_time between #{changeStartTime} and #{changeEndTimestartTime}
</if>
</if>
</where>
order by tipo.create_time
</select>
上面我们就通过动态拼接实现了按多条件查询的例子啦~,上面这种也可以不通过sql,直接在前端使用filter进行实现(可以提高用户体验,秒速查询)可以去看这个vue实现过滤器
相关文章:
一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)
比如我们有一个订单记录管理界面 条件可以通过订单号、商品名称、创建日期范围、价格范围。。。来进行筛选查询。 首先我们先确定数据库订单表(我这里就不做连表了,都放在一个表中)模拟一个订单表 order表 订单号商品名称创建日期价格地址…...
WebRTC | 实现数据流的一对一通信
目录 一、浏览器对WebRTC的支持 二、MediaStream与MediaStreamTrack 三、RTCPeerConnection 1. RTCPeerConnection与本地音视频数据绑定 2. 媒体协商SDP 3. ICE (1)Candidate信息 (2)WebRTC收集Candidate (3&…...
基于MATLAB小波变换的信号突变点检测
之前在不经意间也有接触过求突变点的问题。在我看来,与其说是求突变点,不如说是我们常常玩的"找不同"。给你两幅图像,让你找出两个图像中不同的地方,我认为这其实也是找突变点在生活中的应用之一吧。回到找突变点位置上…...
JUC并发编程(JUC核心类、TimeUnit类、原子操作类、CASAQS)附带相关面试题
目录 1.JUC并发编程的核心类 2.TimeUnit(时间单元) 3.原子操作类 4.CAS 、AQS机制 1.JUC并发编程的核心类 虽然java中的多线程有效的提升了程序的效率,但是也引发了一系列可能发生的问题,比如死锁,公平性、资源管理…...
个人用C#编写的壁纸管理器 - 开源研究系列文章
今天介绍一下笔者自己用C#开发的一个小工具软件:壁纸管理器。 开发这个小工具的初衷是因为Windows操作系统提供的功能个人不满意,而且现在闲着,所以就随意写了个代码。如果对读者有借鉴参考作用就更好了,能够直接代码段复用即可。…...
iTextSharp 生成PDF
示例代码定义了一个名为PdfController的API控制器,其中的GeneratePdf方法创建了一个新的PDF文档,并将内容添加到文档中。最后,将文档内容转换为字节数组,并通过File方法返回给前端。 注意,你需要在你的项目中添加对iT…...
基于微信小程序的传染病酒店隔离平台设计与实现(Java+spring boot+MySQL+微信小程序)
获取源码或者论文请私信博主 演示视频: 基于微信小程序的传染病酒店隔离平台设计与实现(Javaspring bootMySQL微信小程序) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:…...
vue3中用watch监听响应式数据的注意点
如果你在vue3中使用reactive()方法创建响应式数据,然后又用torefs()方法将响应式数据解构成单一的ref响应式数据。 此时,如果你想用watch监听解构出来单一的响应式数据,watch不起作用。 此时,你需要用watch监听之前的reactive()…...
Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)
1.简介 上一篇中已经将其的理论知识介绍了一下,这一篇就带着大家一步一步的把上一篇介绍的理论知识实践一下,然后再说一下如何创建高级web测试计划。 2.网络计划实战 通过上一篇的学习,将其分类为: (1)不需…...
【单片机】51单片机,TLC2543,驱动程序,读取adc
TLC2543 是一款 12 位精密模数转换器 (ADC)。 1~9、11、12——AIN0~AIN10为模拟输入端; 15——CS 为片选端; 17——DIN 为串行数据输入端;(控制字输入端,用于选择转换及输出数据格式) 16——…...
誉天HCIE-Cloud_Computing3.0课程简介
课时:60 第一天 1. 华为云 Stack 解决方案及架构介绍 3. 华为云 Stack 的安装流程解析及规划设计 4. 华为云 Stack 的网络平面的规划解析 5. 华为云 Stack Deploy 部署工具的安装,配置,创建工程,下载 LLD 表 6. 华为云 Stack 的 …...
Unity之ShaderGraph 节点介绍 Procedural节点
程序化 噪声Gradient Noise(渐变或柏林噪声)Simple Noise(简单噪声)Voronoi(Voronoi 噪声) 形状Ellipse(椭圆形)Polygon(正多边形)Rectangle(矩形…...
期权定价模型系列【1】—BSM通用式模型
这是期权定价模型专栏的第一篇文章,此专栏旨在分享一些期权定价模型,将会从最基础的BSM模型开始写起,逐步扩散到蒙特卡洛模拟、二叉树等数值法模型,以及跳跃扩散模型、随机波动率模型,神经网络模型等等。 如果你觉得有…...
HA3 SQL样本实验:一种混合计算查询的全新样本解决方案
作者:陆唯一(芜霜) HA3(对外开源代号:Havenask )是阿里智能引擎团队自研的大规模分布式检索系统,广泛应用于阿里内部的搜索业务,是十多年来阿里在电商领域积累下来的核心竞争力产品。Ha3 SQL 是在原有Ha3引…...
Linux(Web与html)
域名 DNS与域名: 网络是基于tcp/ip协议进行通信和连接的 tcp/ip协议是五层协议:应用层–传输层—网络层----数据链路层----物理层每一台主机都有一个唯一的地址标识(固定的ip地址,用于区分用户和计算机。 ip地址:由…...
SpringBoot 底层机制分析[上]
文章目录 分析SpringBoot 底层机制【Tomcat 启动分析Spring 容器初始化Tomcat 如何关联Spring 容器】[上]搭建SpringBoot 底层机制开发环境Configuration Bean 会发生什么,并分析机制提出问题:SpringBoot 是怎么启动Tomcat ,并可以支持访问C…...
电源控制--对数与db分贝
在控制理论中,"db"通常表示分贝(decibel)的缩写。分贝是一种用于度量信号强度、增益或衰减的单位。 在控制系统中,分贝常用于描述信号的增益或衰减。通常,增益以正数的分贝值表示,而衰减以负数的…...
LeetCode 1749. 任意子数组和的绝对值的最大值(前缀和)
题目: 链接:LeetCode 1749. 任意子数组和的绝对值的最大值 难度:中等 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, …, numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 … numsr-1 numsr) 。 请你找出 nums 中 和的绝对…...
python爬虫相关
目录 初识爬虫 爬虫分类 网络爬虫原理 爬虫基本工作流程 搜索引擎获取新网站的url robots.txt HTHP协议 Resquests模块 前言: 安装 普通请求 会话请求 response的常用方法 简单案例 aiohttp模块 使用前安装模块 具体案例 数据解析 re解析 bs4…...
PAT(Advanced Level) Practice(with python)——1023 Have Fun with Numbers
Code N int(input()) D_N 2*N # print(Yes)if len(str(D_N))>len(str(N)):print(No) else:for s in str(D_N):if s not in str(N) or str(D_N).count(s)!str(N).count(s):print("No")breakelse:print(Yes) print(D_N)...
知识的基本特性:相对正确性、不确定性与可表示性
“知识”并不是对客观世界的简单照搬,也不是永远不变的绝对真理。它是在认识、概括、组织和应用过程中形成的结果,因此既具有稳定性,也具有条件性。理解知识的基本特性,有助于进一步理解:为什么知识需要表示࿰…...
别再死记硬背了!用Python代码复现Photoshop 27种混合模式(附完整源码)
用Python代码实现Photoshop混合模式的终极指南 在数字图像处理领域,Photoshop的混合模式就像魔术师的调色板,能够创造出令人惊叹的视觉效果。但你是否想过这些看似神秘的混合效果背后,其实是一系列精确的数学公式在起作用?本文将带…...
开源大模型落地利器:Meixiong Niannian画图引擎在内容创业中的提效实践
开源大模型落地利器:Meixiong Niannian画图引擎在内容创业中的提效实践 1. 为什么内容创业者需要一个“会画画”的AI助手? 你是不是也经历过这些时刻: 明明有个绝妙的选题,却卡在配图上——找图版权不放心,外包修图…...
BERT中文模型实战指南:从零开始搭建智能文本分类系统
BERT中文模型实战指南:从零开始搭建智能文本分类系统 1. 项目概述与准备工作 1.1 BERT模型简介 BERT(Bidirectional Encoder Representations from Transformers)是Google在2018年提出的预训练语言模型,它通过双向Transformer架…...
ThinkPad T14读卡器驱动问题排查:从无法识别到即时插拔的解决之路
1. 问题初现:当T14读卡器突然"失明" 那天我正在准备昇腾AI创新大赛的材料,需要把香橙派的Ubuntu镜像烧录到新买的闪迪128GB micro SD卡里。像往常一样把TF卡插入ThinkPad T14的读卡器槽,却发现电脑毫无反应——没有叮咚的硬件识别音…...
STM32F103C8T6驱动DHT11温湿度传感器,从CubeMX配置到OLED显示(附完整工程)
STM32F103C8T6驱动DHT11温湿度传感器全流程实战指南 最近在帮几个学生调试毕业设计时,发现很多初学者在使用STM32驱动DHT11传感器时总会遇到各种奇怪的问题。要么时序不对导致数据读取失败,要么OLED显示乱码,最头疼的是CubeMX配置一堆参数后代…...
别再只用Seurat分群了!用hdWGCNA给你的单细胞数据挖掘基因共表达模块(附INH神经元实战代码)
突破单细胞分群瓶颈:用hdWGCNA挖掘INH神经元功能模块的完整指南 当你完成单细胞转录组数据的Seurat标准分析流程,得到清晰的细胞聚类分群结果时,兴奋之余是否也感到一丝迷茫?知道细胞类型(cell_type)只是起…...
Debian 12 安装 Podman 5.7.1 最新版完整指南(含国内镜像加速配置)
Debian 12 容器化实践:Podman 5.7.1 高效部署与镜像加速全攻略 容器技术正在重塑现代应用交付的范式。作为Docker的替代方案,Podman以其无守护进程架构和原生rootless支持,正在成为开发者工具箱中的新宠。本文将带您深入探索在Debian 12上部…...
Qwen3.5-9B代码生成效果:单元测试自动生成+边界条件覆盖分析
Qwen3.5-9B代码生成效果:单元测试自动生成边界条件覆盖分析 1. 开篇:认识Qwen3.5-9B代码生成能力 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,在代码生成领域展现出惊人的能力。不同于普通代码补全工具,它能理解复杂编程逻辑…...
如何交换表分区_ALTER TABLE EXCHANGE PARTITION实现数据快速导入导出
EXCHANGE PARTITION能秒级导入导出数据,因其仅交换元数据而非移动实际数据文件;要求源表与目标分区结构完全一致,包括列定义、约束、索引等,否则直接报错。EXCHANGE PARTITION 为什么能“秒级”导入导出数据因为 exchange partiti…...
