一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)

这篇具有很好参考价值的文章主要介绍了一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

比如我们有一个订单记录管理界面

条件可以通过订单号、商品名称、创建日期范围、价格范围。。。来进行筛选查询。首先我们先确定数据库订单表(我这里就不做连表了,都放在一个表中)模拟一个订单表

order表

订单号

 文章来源地址https://www.toymoban.com/news/detail-639288.html

 

商品名称

 

 

创建日期

 

 

价格

 

 

地址

 

 

用户

 

 

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>

再比如:

<select id="selectOrder" resultMap="BaseResultMap">
        select
                id, prizes_name,Receive_address_id, create_time,
                Audit_time,
                integral, user_name
                from
                t_order 
        <where>
            '1'='1'
            <if test="prizesName != null and prizesName != ''">
                and prizes_name = #{prizesName}
            </if>
            <if test="startIntegral != null and startIntegral != ''">
                <if test="endIntegral != null and endIntegral != ''">
                    and prizes_integral between #{startIntegral} and #{endIntegral}
                </if>
            </if>
//foreach的使用
            <if test="ids!= null and ids.length!=0">
                id IN
                  <foreach item="id" collection="ids" open="(" separator="," close=")">
                            #{id}
                  </foreach>
            </if>
        </where>
        order by create_time
    </select>

上面我们就通过动态拼接实现了按多条件查询的例子啦~,上面这种也可以不通过sql,直接在前端使用filter进行实现(可以提高用户体验,秒速查询)可以去看这个vue实现过滤器,但是这种情况

不能用于数据变化频率高的情况,因为在前端筛选不会重新查询数据库,也不能实时更新

 

到了这里,关于一个可以通过多个条件筛选的系统界面是如何实现的(springboot+mybatis)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 内网可以通过https来访问,外网不可以通过https来访问,怎么办

    如果您的内网可以通过HTTPS来访问,但外网无法通过HTTPS进行访问,可能有几种原因导致这个问题: 防火墙配置:请确保您的防火墙正确配置,以允许外部访问您的服务器的HTTPS端口(通常为443端口)。检查防火墙规则并确保已配置允许传入和传出的HTTPS流量。 网络地址转换(

    2024年02月07日
    浏览(26)
  • 如何通过代码在Unity设置URP通用渲染管线资源的画质选项、后处理效果、渲染分辨率、抗锯齿效果、Renderer Features等效果并制作一个可以设置它们的UI

       Hello喔 这里是没有鱼的猫先生,本期文章的主题佬们有看到标题了 QWQ    当使用Urp管道项目时,我们需要在一个Urp通用管线资源的项目中修改它的各种效果以玩家自己设置不同的画质需求,那下面这个通用脚本便诞生了,它也许并不适用于所有的场景,但是相信应用过它

    2024年02月09日
    浏览(28)
  • 学习和长跑很类似,长跑可以通过训练提高跑步的速度和时长,那么学习也可以通过训练提高学习的速度和时长吗?

    问题描述:学习和长跑很类似,长跑可以通过训练提高跑步的速度和时长,那么学习也可以通过训练提高学习的速度和时长吗?另外,学习和长跑一样,后半程会出现乏力的现象,但是只要坚持下去,虽然速度慢了下来,但是总归可以冲向终点吗? 问题解答: 首先,就像长

    2024年02月22日
    浏览(30)
  • 语音识别功能测试:90%问题,可以通过技术解决

    现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互;另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”,百度公司的“小度”,三星公司的“bixby”,苹果的“siri”

    2024年02月03日
    浏览(28)
  • 小程序可以通过以下几种方式下发消息

    1.模板消息 小程序可以通过模板消息向用户发送通知,例如订单状态更新、活动提醒等。开发者需要先在小程序后台设置好模板消息,并获取到模板消息的模板ID。然后在代码中调用相应的API,将模板消息的内容填充并发送给用户。 以下是一个示例代码,用于发送小程序模板

    2024年02月07日
    浏览(27)
  • 设备分散怎么办? 可以通过链路层发现协议

    大型网络中,连接清晰是很重要滴。网络越大,逻辑上和物理上都越难理清。再加上还有冗余链路和链路聚合,会大大增加理清网络中设备互连情况的难度。而且,问题还不止于此。混合使用来自不同供应商的网络产品,会让设备发现协议无所适从。 首先,我要讲一个背景故

    2024年02月07日
    浏览(36)
  • 电脑可以通过蓝牙发送文件吗?电脑蓝牙怎么发送文件

    蓝牙(bluetooth)是一种支持设备短距离通信的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。蓝牙技术让数据传输变得更加迅速高效,为无线通信拓宽道路。随着蓝牙技术的发展,其应用领域越来越广泛,那么,

    2024年02月09日
    浏览(46)
  • 超实用:通过文字就可以操纵这款AI表格

    公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 今天给大家分享超实用的AI表格 ChatExcel ,这个工具是由北大团队在2022年3月开始开发的AI表格处理神器,上传你的表格后,只需要用文字描述你的需求,不需要你懂excel函数,AI就会自动帮你

    2024年02月05日
    浏览(30)
  • 将一张RGB图像转换为BGR格式可以通过以下步骤实现

    读取图像:使用图像处理库(如OpenCV)读取一张RGB格式的图像,并将其存储为NumPy数组。 转换通道顺序:使用np.transpose函数将图像数组的通道顺序从RGB转换为BGR。 在这里,np.transpose函数的第一个参数是图像数组,第二个参数是元组,表示要交换的维度顺序。由于RGB格式的图像

    2024年02月11日
    浏览(51)
  • python函数可以通过列表索引放到button事件 by chatgpt

    Python函数可以通过列表索引放到按钮事件中。在按钮事件处理函数中,你可以使用`event.widget`属性获取触发事件的按钮,然后使用`grid_info()`方法获取按钮的行和列索引,最后使用索引从列表中获取函数并调用它。   以下是示例代码:   ```python import tkinter as tk   # 创建主窗口

    2023年04月25日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包