mybatis中动态sql语句like concat(“%“,#{xm},“%“)

1、动态SQL是一种可以根据不同条件生成不同SQL语句的技术,随着用户输入或外部条件变化而变化的SQL语句

2、SQL语句中的like模糊查询   xm like '%小米%',但开发中经常用到 xm like concat("%",#{xm},"%"),可以防止sql注入

3、concat()函数用于将多个字符串连接成一个字符串

4、动态标签<if>:用于判断条件是否成立,使用test属性进行条件判断,如果条件为true,则拼接SQL

    IPage<JcCVo> selectByCyJddm(Page<JcCVo> page, @Param("xm")String xm,@Param("hjqx")String hjqx, @Param("zszldm") String zszldm, @Param("sfzhm")String sfzhm, @Param("jddm") String jddm, @Param("zszldmx") String zszldmx);
<select id="selectByCJddm" resultType="org.jeecg.modules.wlyg.vo.JcVo">
        SELECT *,CONCAT(LEFT(sfzhm,6),'********',RIGHT(sfzhm,4)) AS sfzhmb
               from jc_c where sfsc='N'
        <if test="hjqx == 'ws' ">
            AND  hjqx NOT LIKE '33%'  AND zszldm like 'S%'
        </if>
        <if test="zszldm =='S1'">
        AND LEFT(zszldm, 2) LIKE 'S1'
        </if>
        <if test="zszldm =='S0'">
            AND LEFT(zszldm, 2) LIKE 'S0'
        </if>
        <if test="zszldmx != null and zszldmx != '' ">
            and zszldm = #{zszldmx}
        </if>
        <if test="sfzhm != null and sfzhm != '' ">
            and sfzhm like concat("%",#{sfzhm},"%")
        </if>
        <if test="jddm != null and jddm != '' ">
            and jddm = #{jddm}
        </if>
        <if test="xm != null and xm != '' ">
            and xm like concat("%",#{xm},"%")
        </if>
        AND zszt='1'
        AND jddm is not null
        and lbdm not like 'O%' and lbdm not like 'I%'

    </select>

5、动态标签<foreach>:一般用于批量操作,比如批量查询或删除

Integer getCynumberByZszl(@Param("ids") List<String> ids,@Param("flag") String flag);

foreach有几个属性:collection:遍历的集合        item:遍历出来的元素        separator:分割符        open:遍历开始前拼接的SQL片段        close:遍历结束后拼接的SQL片段

<select id="getCynumberByZszl" resultType="java.lang.Integer">
        SELECT count(*)
        FROM jc_cyzs s
        where zszt='1'
        <if test="flag == 'zwcy' ">
            and s.zszldm LIKE 'S%' and s.zszldm != 'S000'
        </if>
        <if test="flag == 'ptcy' ">
            and s.zszldm = 'S000'
        </if>

        <if test="ids != null and ids != ''">
            <foreach collection="ids" item="id" open="and s.id in (" close=")" separator=",">
                #{id}
            </foreach>
        </if>
    </select>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules..mapper.Mapper">

    <select id="selectByCzId" resultType="org.jeecg.modules.wlyg.entity.Jc">
        select *
        from jc_c
        where id = #{czid}
          and sfsc = 'N'
    </select>
    <select id="selectByCyJddm" resultType="org.jeecg.modules.wlyg.vo.Jc">
        SELECT *,CONCAT(LEFT(sfzhm,6),'********',RIGHT(sfzhm,4)) AS sfzhmb
               from jc_c where sfsc='N'
        <if test="hjqx == 'bq' ">
            AND hjqx like'330322'  AND zszldm like 'S%'
        </if>
        <if test="hjqx == 'wq' ">
            AND hjqx NOT LIKE '330322' AND hjqx LIKE '33%'  AND zszldm like 'S%'
        </if>
        <if test="hjqx == 'ws' ">
            AND  hjqx NOT LIKE '33%'  AND zszldm like 'S%'
        </if>
        <if test="zszldm =='S1'">
        AND LEFT(zszldm, 2) LIKE 'S1'
        </if>
        <if test="zszldm =='S2'">
            AND LEFT(zszldm, 2) LIKE 'S2'
        </if>
        <if test="zszldm =='S5'">
            AND LEFT(zszldm, 2) LIKE 'S5'
        </if>
        <if test="zszldm =='S0'">
            AND LEFT(zszldm, 2) LIKE 'S0'
        </if>
        <if test="zszldmx != null and zszldmx != '' ">
            and zszldm = #{zszldmx}
        </if>
        <if test="sfzhm != null and sfzhm != '' ">
            and sfzhm like concat("%",#{sfzhm},"%")
        </if>
        <if test="jddm != null and jddm != '' ">
            and jddm = #{jddm}
        </if>
        <if test="xm != null and xm != '' ">
            and xm like concat("%",#{xm},"%")
        </if>
        AND zszt='1'
        AND jddm is not null
        and lbdm not like 'O%' and lbdm not like 'I%'

    </select>


    <select id="getCynumberByZszl" resultType="java.lang.Integer">
        SELECT count(*)
        FROM jc_cyzs s
        where zszt='1'
        <if test="flag == 'zwcy' ">
            and s.zszldm LIKE 'S%' and s.zszldm != 'S000'
        </if>
        <if test="flag == 'ptcy' ">
            and s.zszldm = 'S000'
        </if>

        <if test="ids != null and ids != ''">
            <foreach collection="ids" item="id" open="and s.id in (" close=")" separator=",">
                #{id}
            </foreach>
        </if>
    </select>

</mapper>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/746043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

半藏酒商业模式解读,半藏酱酒营销案例,半藏总院分院招商模式

半藏酱酒通过新零售模式&#xff0c;实现销售额快速增长。其模式包括私域营销、共享门店和DTC模式 入局酱酒市场短短4个月&#xff0c;销售额便破亿&#xff0c;15个月销售额突破6亿&#xff0c;还成立了700多家分院… 主要步骤是三个身份&#xff1a;分院、联创股东、个人股东…

Java毕设服务工作室

Java毕设服务工作室&#xff1a;专注提供高质量Java代码解决方案 在Java编程领域&#xff0c;毕业设计&#xff08;毕设&#xff09;项目往往需要大量的代码编写和调试。为了让同学们能够更专注于项目的核心逻辑和技术实现&#xff0c;Java毕设服务工作室应运而生&#xff0c;…

AME5268-AZAADJ 3A,28V,340KHz同步整流下行变换器芯片IC

一般说明 AME5268 是一款固定频率单片同步稳压器&#xff0c;可接受4.75V至28V的输入电压。两个低接通电阻的NMOS开关集成在模具上。采用电流模式拓扑结构&#xff0c;具有快速的暂态响应和良好的环路稳定性。 关断模式将输入电源电流降低到小于1μa。可调软启动…

2024系统分析师考试总结

考试缘由 我自己在毕业不久就考过了中级的软件设计师&#xff0c;这几年换到外企后事情不多&#xff0c;今年初定计划的时候就想着不如考个系统分析师吧。为什么选这个类别呢&#xff1f;按道理我主做程序开发&#xff0c;如果去考系统架构师通过率可能会大一些&#xff0c;但…

C++应用例程(判断质数、猜数字、爱心曲线)

一、判断质数 质数也叫素数&#xff0c;是指一个大于1的自然数&#xff0c;因数只有1和它自身。质数是数论中一个经典的概念&#xff0c;很多著名定理和猜想都跟它有关;质数也是现代密码学的基础。 判断一个数是否为质数没有什么规律可言&#xff0c;我们可以通过验证小于它的…

SpringBoot集成Druid数据库连接池并配置可视化界面和监控慢SQL

pom.xml <!-- Druid 数据库连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.23</version></dependency>application.yml spring:jackson:date-…

ONLYOFFICE 文档 8.1 发布:重塑文档处理

官网链接&#xff1a;ONLYOFFICE官网 一、PDF编辑器功能强大&#xff1a;创造跟随想象 在追求无界办公与高效创作的今天&#xff0c;ONLYOFFICE再次引领风潮&#xff0c;正式发布了其桌面编辑器的最新版本——ONLYOFFICE桌面编辑器8.1。这一版本不仅巩固了其作为顶级办公套件…

工业数据采集网关特别的功能之处

工业数据采集网关作为工业物联网&#xff08;IIoT&#xff09;系统的核心设备&#xff0c;承担着数据采集、传输和处理的关键任务。其特别功能不仅在于数据采集的广泛性和实时性&#xff0c;更在于其智能化、可扩展性和安全性。以下是工业数据采集网关的一些特别功能及其在工业…

VMware的具体使用

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 目录 一 &#x1f324;️VMware的安…

Nodejs使用mqtt库连接阿里云服务器

建项目 命令行输入&#xff1a; npm init 输入项目名&#xff0c;自动化生成项目列表。 6.3 编写代码 新建mqtt_demo_aliyun.js&#xff0c;代码如下&#xff1a; // mqtt_demo_aliyun.jsconst mqtt require("mqtt"); const connectUrl "ws://post-cn-nw**…

PyTorch实战:借助torchviz可视化计算图与梯度传递

文章目录 Tensor计算的可视化&#xff08;线性回归为例&#xff09; 如何使用可视化库torchviz 安装graphviz软件 安装torchviz库使用 torchviz.make_dot() 在学习Tensor时&#xff0c;将张量y用张量x表示&#xff0c;它们背后会有一个函数表达关系&#xff0c;y的 grad_f…

VMamba: Visual State Space Model论文笔记

文章目录 VMamba: Visual State Space Model摘要引言相关工作Preliminaries方法网络结构2D-Selective-Scan for Vision Data(SS2D) VMamba: Visual State Space Model 论文地址: https://arxiv.org/abs/2401.10166 代码地址: https://github.com/MzeroMiko/VMamba 摘要 卷积神…

【Docker】安装和加速

目录 1.安装 2.了解 docker 信息 3.查询状态 4. 重新启动Docker 1.安装 yum install –y docker 2.了解 docker 信息 cat /etc/redhat-release 3.查询状态 systemctl status docker 4.支持 1.12 的 docker 镜像加速 sudo mkdir -p /etc/docker sudo tee /etc/docke…

深入了解 msvcr120.dll问题解决指南,msvcr120.dll在电脑中的重要性

在Windows操作系统中&#xff0c;.dll 文件扮演了非常重要的角色&#xff0c;它们包含许多程序运行所需的代码和数据。其中 msvcr120.dll 是一个常见的动态链接库文件&#xff0c;是 Microsoft Visual C Redistributable Packages 的一部分。这篇文章将探讨 msvcr120.dll 的功能…

生命在于学习——Python人工智能原理(4.4)

三、Python的数据类型 3.2 Python的组合数据类型 特点&#xff1a;表示多个元素的组合&#xff0c;可以包含不同类型的元素&#xff0c;甚至是其他的组合数据类型。 在内存中通常需要额外的空间来存储元素间的关系。 组合数据类型能够将多个同类型或不同类型的数据组织起来&a…

python turtle 004Hello Kity

代码&#xff1a;pythonturtle004HelloKity资源-CSDN文库 # 作者V w1933423 import math import turtle as t# 设置画笔速度 t.speed(0)# 定义函数画弧 def myarc(t1, r, angle):arc_length 2 * math.pi * r * angle / 360 # 弧长n int(arc_length / 3) 1 # 分割段数step…

新手选择代理IP时这几点误区一定要避开!

在选择代理IP时&#xff0c;许多用户可能会因为对代理IP的认识不足或受到一些误导&#xff0c;而陷入一些常见的误区。这些误区不仅可能导致用户无法达到预期的效果&#xff0c;还可能带来一些不必要的风险。下面&#xff0c;IPIDEA代理IP就与大家一同分析在选择代理IP时需要避…

【Qt+opencv】编译、配置opencv

文章目录 前言下载opencv编译opencvmingw版本 总结 前言 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;它包含了超过2500个优化的算法。这些算法可以用来检测和识别面部&#xff0c;识别对象&#x…

初识es(elasticsearch)

初识elasticsearch 什么是elasticsearch&#xff1f;&#xff1a; 一个开源的分部署搜索引擎、可以用来实现搜索、日志统计、分析、系统监控等功能。 什么是文档和词条&#xff1f; 每一条数据就是一个文档对文档中的内容进行分词&#xff0c;得到的词语就是词条 什么是正向…

小型海外仓布局策略:高效利用有限空间,标准化3F流程

合理高效的仓库空间设计&#xff0c;不只是对大型海外仓很关键。对空间有限的小型海外仓来说或许价值更大。 本身仓储空间就有限&#xff0c;如果还没有科学规划&#xff0c;造成空间浪费&#xff0c;那将直接影响到核心业务的运转。 今天我们就给大家整理了对小型海外仓布局…