sql标签

本文详细介绍了SQL标签的使用,包括where if条件语句、set更新操作、choose、when、otherwise的条件选择,以及ResultMap在处理复杂映射中的作用。进一步探讨了一对一和一对多的关联关系配置,从pojo类的设计到mapper文件的编写。最后,文章还涵盖了核心的SQL操作及foreach在动态SQL中的应用。
摘要由CSDN通过智能技术生成

目录

1.where if

2.set

3.choose、when、otherwise

4.ResultMap

5.关联关系

5.1一对一

5.1.1编辑pojo类

 5.1.2编辑mapper文件

5.2一对多

5.2.1pojo类

5.2.2mapper文件

6.sql

7.foreach


1.where if

<!--
        问题说明: 前端数据传递时可能会有null数据.
                如果数据为null则不能充当where条件
        解决方案: 动态Sql实现
        语法:
            <if test="判断条件"> id = #{id}</if>
                true:   则拼接标签内容
                false:  则不拼接标签内容
           <where>标签: 去除where后边多余的and/or
    -->
    <select id="findSqlWhere" resultType="User">
        select * from demo_user
            <where>
                <if test="id != null"> id = #{id}</if>
                <if test="name !=null">and name = #{name}</if>
                <if test="age !=null"> and age = #{age}</if>
                <if test="sex !=null"> and sex = #{sex}</if>
            </where>
    </select>

2.set

<!--根据对象中不为null的属性 当做set条件
        语法: set标签 去除多余1个,号
    -->
    <update id="updateUser">
        update demo_user
            <set>
                <if test="name !=null">name=#{name},</if>
                <if test="age !=null"> age=#{age},</if>
                <if test="sex !=null"> sex=#{sex},</if>
            </set>
            where id = #{id}
    </update>

3.choose、when、otherwise

<!--
     * 如果name有值,则根据name查询.
     * 如果name没有值,则根据age查询.
     * 如果name/age都没有值,则根据sex查询
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值