动态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 语句同时使用。按照某个字段进行模糊查询。如果不输入,则返回所有的记录。但是,如果传递了任意一个参数,就会返回与给定参数相匹配的记录。