mybatis xml 动态sql相关语法

news2024/11/24 8:28:55
<?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="com.xiaKangan.mapper.EmpMapper">
<!--    SQL片段的重复使用-->
    <!-- 将SQL代码放入sql标签中,可以在其他增删改查操作中引入id实现复用-->
    <sql id="sqlSyntax">
        select * from emp where name like concat('%',#{name},'%') and gender= #{gender} and
            entrydate between #{begin} and #{end} order by update_time desc
    </sql>
    <select id="cSearch" resultType="com.xiaKangan.pojo.Emp">
        -- 引入SQL片段
        <include refid="sqlSyntax"/>
--         select * from emp where name like concat('%',#{name},'%') and gender= #{gender} and
--                                 entrydate between #{begin} and #{end} order by update_time desc
    </select>

<!--    动态SQL条件查询-->
    <select id="conditionSearch" resultType="com.xiaKangan.pojo.Emp">
        select *
        from emp
--      where标签当有至少一个条件成立时,生成SQLwhere语句,并且自动修正SQL语句
        <where>
        <if test="name != null">
            name like concat('%' , #{name} , '%')
        </if>
        <if test="gender != null">
            and gender= #{gender}
        </if>
        <if test="begin != null and end != null">
            and entrydate between #{begin} and #{end}
        </if>
        </where>
        order by update_time desc
    </select>

<!--    动态SQL更新数据-->
    <update id="update2">
        update emp
        set
        -- 将SQL语句里面多余的语法结构删除掉,避免语法错误
        -- trim 标签中还有 prefixOverrides 删除语法中的前缀多余部分
        -- 在if语句的外层添加set标签也能纠正语法
        <trim suffixOverrides=",">
             <if test="username != null">username = #{username},</if>
             <if test="name != null">name = #{name},</if>
             <if test="gender != null">gender = #{gender},</if>
             <if test="image != null">image = #{image},</if>
             <if test="job != null">job = #{job},</if>
             <if test="entrydate != null">entrydate = #{entrydate},</if>
             <if test="deptId != null">dept_id = #{deptId},</if>
             <if test="updateTime != null">update_time = #{updateTime}</if>
        </trim>
        <where>
            id = #{id}
        </where>
    </update>

<!--    批量删除员工信息(18,19,21)-->
    <delete id="deleteByIds">
        delete from emp where id in
        -- collection 遍历的集合
        -- item 遍历出来的元素
        -- separater 分隔符
        -- open 遍历开始前的符号
        -- close 遍历结束的符号
        <foreach collection="ids" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>


</mapper>

XML动态SQL图片文件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

定期修改密码竟然导致好几任运维小哥离职

某云服务商为政企客户提供私有云服务&#xff0c;每朵云里交换机、服务器、防火墙等网络/安全设备可多达数百台&#xff0c;而该企业仅有二、三十名运维人员&#xff0c;每人要负责2-3朵云的运维管理工作。当前&#xff0c;设备管理存在一些重大安全隐患&#xff0c;主要体现在…

微服务架构的未来发展趋势

文章目录 摘要引言当前发展趋势ServerlessService MeshAIOps 未来可能出现的挑战代码示例微服务架构示例 QA环节小结未来展望参考资料 摘要 微服务架构在软件开发中已经成为主流&#xff0c;但随着市场需求和技术环境的快速变化&#xff0c;微服务架构也在不断演进。本文将分析…

在线教育新突破:Codigger 视频会议的实战案例

在当今数字化时代&#xff0c;在线教育如同一颗璀璨的新星&#xff0c;迅速崛起并照亮了知识传播的新路径。然而&#xff0c;随着竞争的加剧&#xff0c;如何提升教学质量和增强互动性&#xff0c;成为了在线教育机构亟待解决的难题。这时候&#xff0c;视频会议的出现就如同一…

【python】Matplotlib+LaTeX绘图 字符加粗 || 代码合集

【start&#xff1a;240814】 文章目录 动机Matplotlib库调用报错 LaTeX 模式安装使用配置属性&#xff1a;text.latex.preamble属性简介amsmathtextcomp 非LaTeX 模式配置属性&#xff1a;mpl.rcParams[...] 字符加粗&#xff08;label&#xff09;非LaTeX模式&#xff08;关闭…

英飞凌高压侧智能电源开关:BSP762T中文资料书

描述&#xff1a; 集成垂直功率FET的高压侧电源开关&#xff0c;提供嵌入式保护和诊断功能。 特性 - 过载保护 - 电流限制 - 短路保护 - 带重启功能的热关断 - 过压保护&#xff08;包括负载转储&#xff09; - 电感负载快速消磁 - 电池反向保护&#xff0c;带外部电阻 - CMOS兼…

【手撕数据结构】Topk问题

目录 题目思路代码 题目 TOP-K问题&#xff1a;即求数据结合中前K个最⼤的元素或者最⼩的元素&#xff0c;⼀般情况下数据量都⽐较⼤。 ⽐如&#xff1a;专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 对于Top-K问题&#xff0c;能想到的最简单直接的⽅式就是排序…

智联云采 SRM2.0 runtimeLog/download 任意文件读取漏洞复现

0x01 产品简介 智联云采是一款针对企业供应链管理难题及智能化转型升级需求而设计的解决方案&#xff0c;针对企业供应链管理难题&#xff0c;及智能化转型升级需求&#xff0c;智联云采依托人工智能、物联网、大数据、云等技术&#xff0c;通过软硬件系统化方案&#xff0c;帮…

Python 中的 SHAP 简介

本文中有多篇计划文章&#xff0c;后期会补充相关链接。鉴于公众号内无法后期修改文章&#xff0c;请关注原文链接。 如何创建和解释 SHAP 图&#xff1a;瀑布图、力图、平均 SHAP 图、蜂群图和依赖图 可直接在橱窗里购买&#xff0c;或者到文末领取优惠后购买&#xff1a; SHA…

iOS替代商店AltStore PAL获得EPIC的资助 即日起取消1.5欧元的年度订阅费

知名游戏开发商 EPIC 日前宣布通过 EPIC MegaGrant 计划向 iOS 替代商店 AltStore PAL 进行捐赠&#xff0c;该商店是在欧盟市场经过苹果批准的合规的第三方应用商店。 按苹果规定第三方替代商店需要缴纳核心技术费并且没有豁免条款&#xff0c;因此该商店每被一名用户安装&am…

RIP学习笔记

1.RIP简介 Rip&#xff1a;routing information protocol&#xff0c;路由信息协议。属于动态路由协议的一种。 RIP是应用较早、使用较普遍的内部网关协议(InteriorGatewayProtocol,简称IGP)&#xff0c;适用于小型同类网络&#xff0c;是典型的距离向量(distance-vector)协议…

OKR 与 KPI 的区别

OKR出现后&#xff0c;大家经常会拿KPI与之一起比较&#xff0c;结果两级分化&#xff1a;爱KPI的一如既往KPI&#xff0c;把OKR说的一无是处。爱OKR的&#xff0c;搞起了“去KPI”化。Tita作为OKR应用软件的服务商&#xff0c;我们也必须对OKR和KPI有充分的理解。对此我认真做…

Ubuntu离线安装docker

查看操作系统版本&#xff1a; rootzyh-VMware-Virtual-Platform:~/install# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 24.04 LTS Release: 24.04 Codename: noble rootzyh-VMware-Virtual-Platform:~/install#…

微服务架构设计中的常见的10种设计模式

微服务架构设计的概念 微服务架构&#xff08;Microservices Architecture&#xff09;是一种用于构建分布式系统的软件设计模式。它将大型应用程序拆分成一组小型、自治的服务&#xff0c;每个服务都运行在其独立的进程中&#xff0c;服务之间通过轻量级的通信机制&#xff08…

重塑商业生态:技术驱动下的批发供应系统开发与革新

在当今这个快速变化的商业环境中&#xff0c;批发供应系统作为连接生产商、分销商与零售商的关键纽带&#xff0c;其效率与智能化水平直接影响着整个供应链的运作效率与市场竞争力。随着信息技术的飞速发展&#xff0c;特别是大数据、云计算、人工智能&#xff08;AI&#xff0…

D. 二进制

1.题意&#xff1a;给出2中操作 1)&#xff1a;将段排序 2)&#xff1a;将段输出为十进制数 思路&#xff1a; 1.考虑第一种操作。只需要查询l-r中1的个数即可。如果递增&#xff0c;则中为1&#xff0c;否则中为1&#xff0c;需要一个覆盖tag 2.考虑如何维护十进制的值。…

基于Java的美妆购物网站的设计与实现

TOC springboot323基于Java的美妆购物网站的设计与实现 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和…

在 S7-1200/S7-1500 中,如何测量一个完整程序、子程序或特定组织块的运行时间?

RUNTIME"指令的第一次调用用来设置测量时间的起点,并将其保存在DB变量 "Memory"中来为第二次调用做参考。然后调用 "TestBlock" 程序块。当程序块被执行后,"RUNTIME" 指令第二次调用,第二次调用来计算 "TestBlock"程序块的运行…

电影《白蛇:浮生》观后感

上周看了电影《白蛇&#xff1a;浮生》&#xff0c;动画的特效方面&#xff0c;中国动画这几年确实做的非常不错了&#xff0c;不过整个故事&#xff0c;还是老的那套&#xff0c;并没有感觉特别新意。 &#xff08;1&#xff09;老套故事 《白娘子传奇》的故事&#xff0c;几…

NCBI批量下载序列

根据提供的accession编号批量下载 下载地址 NCBI_batch 点击选择文件&#xff0c;导入需要下载的accession编号文件&#xff0c;点击Retrieveji下载

eNSP 华为划分VLAN

SW1&#xff1a; <Huawei>system-view [Huawei]sysname SW1 [SW1]VLAN batch 10 20 //批量划分vlan [SW1]interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1]port link-type access //设置为access口&#xff0c;access口允许单个vlan通过 [SW1-GigabitEth…