mybatis中动态sql语句(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fanfanzk1314/article/details/82628998

最近在项目中遇到这样的需求:根据不同的条件修改和插入sql语句时,要写很多的sql这样效率有些低,这时有一个很好的解决方法,分享一下:

控制同一张表,但传入的参数不固定,操作表的字段不固定,就要用到mybatis动态插入。.xml如下


<insert id="insertMessage" parameterType="com.sf.ccsp.member.client.request.MessageReq">
       insert cx_customer_message
        <trim prefix="(" suffix=")" suffixOverrides="," >
          ID,MEMBERID,
          <if test='messageClassify != null and messageClassify != "" '>
             MESSAGEE_CLASSIFY,
          </if>
          <if test='messageCode != null and messageCode != "" '>
             MESSAGE_CODE,
          </if>
         <if test='messageContent != null and messageContent != "" '>
             MESSAGE_CONTENT,
         </if>
        </trim>
 
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          #{id, jdbcType=VARCHAR},
          #{memberId, jdbcType=VARCHAR},
          <if test='messageClassify != null and messageClassify != "" '>
            #{messageClassify, jdbcType=VARCHAR},
          </if>
          <if test='messageCode != null and messageCode != "" '>
            #{messageCode, jdbcType=VARCHAR},
          </if>
          <if test='messageContent != null and messageContent != "" '>
            #{messageContent, jdbcType=VARCHAR},
          </if>
        </trim>  
</insert>

下面为修改语句的例子:

这里是使用trim标签(这里只是其中的一种方法)


<update id="updateMessage"  parameterType="com.sf.ccsp.member.client.request.MessageReq" >
     update cx_customer_message
     <trim prefix="set" suffixOverrides=",">  
        <if test='messageClassify != null and messageClassify != "" '>
          MESSAGEE_CLASSIFY = #{messageClassify, jdbcType=VARCHAR},
        </if>
        <if test='messageCode != null and messageCode != "" '>
          MESSAGE_CODE = #{messageCode, jdbcType=VARCHAR},
        </if>
        <if test='messageContent != null and messageContent != "" '>
          MESSAGE_CONTENT = #{messageContent, jdbcType=VARCHAR},
        </if>    
     </trim>  
     where ID = #{id, jdbcType=VARCHAR}
     and MEMBERID = #{memberId, jdbcType=VARCHAR} 
</update>

完结~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

猜你喜欢

转载自blog.csdn.net/fanfanzk1314/article/details/82628998