[mybatis 只对传值的字段进行更新] 两种实现方法

一、判断参数map中是否存在某个key

<update id="updateBook" parameterType="map">
   		update book
   		<trim prefix="set" suffixOverrides=",">
   			<if test="_parameter.containsKey('bookName')">
   				book_name=#{bookName},
   			if>
   			<if test="_parameter.containsKey('bookPrice')">
   				book_price=#{bookPrice},
   			if>
   			<if test="_parameter.containsKey('bookPage')">
   				book_page=#{bookPage}
   			if>
   		trim>
   		where id=#{id}
update>

https://blog.csdn.net/xl_1803/article/details/83472576
Mybatis中的trim标签:
  • trim标签的prefix/suffix属性:如果trim后内容不为空,则增加某某字符串(作前缀/后缀);
  • trim标签的prefixOverrides/suffixOverrides属性:如果trim后内容不为空,则删掉(前缀/后缀的)某某字符串。

二、判断pojo中字段是否为空

<update id="updatePost" parameterType="com.nic.domain.Post">
        update tb_post
        <set>
            <if test="node_id!=null">
                node_id = #{node_id},
            if>
            <if test="node_name!=null">
                node_name = #{node_name},
            if>
            <if test="title!=null">
                title = #{title},
            if>
            <if test="content!=null">
                content = #{content},
            if>
        set>
        where id = #{id}
update>

你可能感兴趣的:(Mybatis)