mybatis xml mapper 文件中 if-else 写法

mybaits 中没有else要用chose when otherwise 代替

模板:

<!--批量插入用户-->
<insert id="insertBusinessUserList" parameterType="java.util.List">
    insert into `business_user` (`id` , `user_type` , `user_login` )
    values
    <foreach collection="list" index="index" item="item" separator=",">
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <choose>
                <when test="item.id != null and item.id !=''">
                    #{item.id,jdbcType=CHAR},
                </when>
                <otherwise>
                    '',
                </otherwise>
            </choose>
            <choose>
                <when test="item.userType != null and item.userType !=''">
                    #{item.userType,jdbcType=VARCHAR},
                </when>
                <otherwise>
                    '',
                </otherwise>
            </choose>
        </trim>
    </foreach>
</insert>
<select id="selectSelective" resultMap="xxx" parameterType="xxx">
    select
    <include refid="Base_Column_List"/>
    from xxx
    where del_flag=0
    <choose>
        <when test="xxx !=null and xxx != ''">
            and xxx like concat(concat('%', #{xxx}), '%')
        </when>
        <otherwise>
            and xxx like '**%'
        </otherwise>
    </choose>
</select>

 使用

 <!--获取业务量发展报表月份倒序集合-->
    <select id="monthList" resultType="java.lang.Integer">
        select `month` from business_development
        <choose>
            <when test="#{topOrgCode} == #{orgCode}">
                where topOrgCode = #{topOrgCode}
            </when>
            <otherwise>
                where topOrgCode = #{topOrgCode} and code = #{orgCode}
            </otherwise>
        </choose>
        group by month order by month desc
    </select>
发布了40 篇原创文章 · 获赞 24 · 访问量 2608

猜你喜欢

转载自blog.csdn.net/weixin_38982591/article/details/104048388