Mybatis动态Sql

本文介绍了MyBatis中实现动态SQL的几个核心元素:If、Where、Trim、Set和Foreach。If标签用于条件判断,Where处理查询条件,避免SQL语句污染,Trim可以删除多余的AND或OR,Set去除更新语句末尾的逗号,Foreach则用于处理集合在SQL中的迭代。通过这些元素,开发者能更灵活地构建动态SQL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Mybatis动态Sql

MyBatis 中用于实现动态 SQL 的元素主要有:

If ,where,trim,set,choose (when, otherwise),foreach

If 元素:

if 标签可以对传入的条件进行判断

<select id="findUserList" parameterType="User" resultType="User">
        select
         id,name,birthday
         from user where    1=1    
             <if test="name!=null">
               and  name=#{name}
             </if>
             <if test="id!=null">
                 and id=#{id}
             </if>
    </select>

上述代码中如果没有1=1 判断语句,将会很麻烦.

where元素:

当查询条件个数不确定时,可以运用where语句来解决上述出现的问题.

<select id="findUserList" parameterType="User" resultType="User">
        select
         id,name,birthday
         from user
         <where>
             <if test="name!=null">
                 name=#{name}
             </if>
             <if test="id!=null">
                 and id=#{id}
             </if>
         </where>
    </select>

元素将会进行判断,如果标签有返回值,那么将会插入一个where ,此外,如果标签中返回内容以OR || AND开头,那么他会自动删除.不会造成代码紊乱.

trim元素:

where标签,其实也可以用trim来表示,当where后缀有and和or 时,他将会删除.prefix前缀,,prefixOverrides覆盖首部指定内容.

<select id="findUserList" parameterType="User" resultType="User">
        select
        id,name,birthday
        from user
        <trim prefix="where" prefixOverrides="and">
            <if test="name!=null">
                 name=#{name}
            </if>
            <if test="id!=null">
                 id=#{id}
            </if>
        </trim>
    </select>
set元素:

他可以把最后一个元素后的逗号去掉.

<update id="updateUser" >
        update user
        <set >
            <if test="name!=null">
                 name=#{name},
            </if>
            <if test="id!=null">
                 birthday=#{birthday},
            </if>
        </set>
        <where>
            id=#{id}
        </where>
    </update>

foreach元素:

主要是在in 条件下完成,他可以在sql语句中完成一个集合的迭代.

foreach元素的属性主要有 item,index,collection,open,separator,close。

item:表示集合中每一个元素进行迭代时的别名

index:指定一个名字,用于表示在迭代过程中,每次迭代到的位置

open:表示该语句以什么开始

separator:r 表示在每次进行迭代之间以什么符号作为分隔符

close:表示以什么结束

collection:

  • 如果传入的是单参数且参数类型是一个 List 的时候,collection 属性值为 list
  • 如果传入的是单参数且参数类型是一个 Array数组的时候,collection 属性值为 array
<delete id="deleteUser">
       delete from user where id in
       <foreach collection="list" item="id" open="(" separator="," close=")">
           #{id}
       </foreach>
    </delete>
内容概要:本文档详细介绍了在三台CentOS 7服务器(IP地址分别为192.168.0.157、192.168.0.158和192.168.0.159)上安装和配置Hadoop、Flink及其他大数据组件(如Hive、MySQL、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala)的具体步骤。首先,文档说明了环境准备,包括配置主机名映射、SSH免密登录、JDK安装等。接着,详细描述了Hadoop集群的安装配置,包括SSH免密登录、JDK配置、Hadoop环境变量设置、HDFS和YARN配置文件修改、集群启动与测试。随后,依次介绍了MySQL、Hive、Sqoop、Kafka、Zookeeper、HBase、Spark、Scala和Flink的安装配置过程,包括解压、环境变量配置、配置文件修改、服务启动等关键步骤。最后,文档提供了每个组件的基本测试方法,确保安装成功。 适合人群:具备一定Linux基础和大数据组件基础知识的运维人员、大数据开发工程师以及系统管理员。 使用场景及目标:①为大数据平台搭建提供详细的安装指南,确保各组件能够顺利安装和配置;②帮助技术人员快速掌握Hadoop、Flink等大数据组件的安装与配置,提升工作效率;③适用于企业级大数据平台的搭建与维护,确保集群稳定运行。 其他说明:本文档不仅提供了详细的安装步骤,还涵盖了常见的配置项解释和故障排查建议。建议读者在安装过程中仔细阅读每一步骤,并根据实际情况调整配置参数。此外,文档中的命令和配置文件路径均为示例,实际操作时需根据具体环境进行适当修改。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值