动态sql实现修改

 

  在Mybatis内,根据某个条件进行修改,普通修改进行选择性修改时会对未修改的字段进行null了。

  使用动态sql,<if></if>进行判空实现。if 与 test 属性联合使用。

    <update id="updateDictById">
        update xz_dict_type
                <set>
                    <if test="dictName!=null and dictName != ''">
                        dict_name = #{dictName},
                    </if>
                    <if test="dictType!=null and dictType != ''">
                        dict_type = #{dictType},
                    </if>
                        update_by = 'admin',
                    <if test="remark!=null and remark != ''">
                        remark = #{remark},
                    </if>
                        update_time = #{updateTime},
                    <if test="status!=null and status != ''">
                        status =
                        <choose>
                            <when test="status == '正常'">'0'</when>
                            <when test="status == '停用'">'1'</when>
                        </choose>,
                    </if>
                </set>
                    where dict_id = #{dictId}
    </update>

 

  里面字段是一个可填可不填的条件,不填写的时候不作为条件。

  在 Mybatis 中,update 语句可以使用 set 标签动态更新列。set 标签可以为 SQL 语句动态的添加 set 关键字,剔除追加到条件末尾多余的逗号。

  

  可多个 if 语句同时使用。按照某个字段进行模糊查询。如果不输入,则返回所有的记录。但是,如果传递了任意一个参数,就会返回与给定参数相匹配的记录。

 

posted @ 2024-04-02 19:05  学Java的`Bei  阅读(40)  评论(0编辑  收藏  举报