美文网首页
Mybatis--动态SQL(if,where,trim)

Mybatis--动态SQL(if,where,trim)

作者: 何以解君愁 | 来源:发表于2022-07-30 02:44 被阅读0次

    Mybatis框架的动态SQL技术是一种根据特定条件动态拼接SQL语句的功能,作用是为了解决拼接SQL语句字符串的痛点问题
    if标签:根据标签中test属性对应的表达式决定标签中的内容是否需要拼接到SQL中
    where标签:当where标签中有内容时,会自动生成where关键字,并且将内容前(内容后的不行)多余的and或or去掉,当无内容时不起作用

        <select id="selectByPageAndCondition" resultMap="brandResultMap">
            select *
            from tb_brand
            <where>
                <if test="brand.brandName != null and brand.brandName != ''">
                    and brand_name like #{brand.brandName}
                </if>
                <if test="brand.companyName != null and brand.companyName != ''">
                    and company_name like #{brand.companyName}
                </if>
                <if test="brand.status != null">
                    and status = #{brand.status}
                </if>
            </where>
            limit #{begin},#{size}
        </select>
    

    trim标签(无内容时不起作用):
    prefix|suffix:在trim标签内容前面或后面添加指定内容;
    prefixOverrides|suffixOverrides:在trim标签内容前面或后面删除指定内容

    <select id="getEmpBycondition" resultType="Emp">
        select*from t_emp
        <trim prefix=where suffixoverrides="and|or">
            <if test="empName != null and empName != ''">
                emp_name =#{ empName} and
            </if>
            <if test="age != null and age != ''">
            age = #{ age} or
            </if>
        </trim>
    </select>
    

    相关文章

      网友评论

          本文标题:Mybatis--动态SQL(if,where,trim)

          本文链接:https://www.haomeiwen.com/subject/zwshwrtx.html