美文网首页
mybatis sql语句前缀后缀设置

mybatis sql语句前缀后缀设置

作者: 抓兔子的猫 | 来源:发表于2016-12-28 10:46 被阅读2374次

    prefix : 给<trim>包裹的sql语句加上前缀.
    **suffix **: 给<trim>包裹的sql语句加上后缀.
    prefixOverrides: 如果<trim>包裹的sql语句是空语句(经常出现在 if 判断为否的情况下),取消指定的前缀,如where.
    suffixOverrides: 如果<trim>包裹的sql语句是空语句(经常出现在 if 判断为否的情况下),取消指定的后缀,如and | or. 逗号等

    拿个 user表举例
    prefix="(" suffix=")" 会在我的<trim></trim> 之间包含的sql语句的开头处加上“(” ,结束处加上“)”, 因为我在sql中插入的字段有多个,之间用逗号连接,但是如果不做任何处理的话,插入语句 INSERT INTO 表名称 VALUES (值1, 值2,....) 中最后一个值得末尾会多一个“,”,而suffixOverrides="," 可以帮我们去掉这个后缀的逗号。

    <insert id="insertSelective" parameterType="com.dhcc.bugkiller.web.model.User" >
        insert into t_user
        <trim prefix="(" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            id,
          </if>
          <if test="name != null" >
            name,
          </if>
          <if test="password != null" >
            password,
          </if>
          <if test="salt != null" >
            salt,
          </if>
          <if test="nickname != null" >
            nickName,
          </if>
          <if test="email != null" >
            email,
          </if>
          <if test="department != null" >
            department,
          </if>
          <if test="photo != null" >
            photo,
          </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
          <if test="id != null" >
            #{id,jdbcType=INTEGER},
          </if>
          <if test="name != null" >
            #{name,jdbcType=VARCHAR},
          </if>
          <if test="password != null" >
            #{password,jdbcType=VARCHAR},
          </if>
          <if test="salt != null" >
            #{salt,jdbcType=VARCHAR},
          </if>
          <if test="nickname != null" >
            #{nickname,jdbcType=VARCHAR},
          </if>
          <if test="email != null" >
            #{email,jdbcType=VARCHAR},
          </if>
          <if test="department != null" >
            #{department,jdbcType=VARCHAR},
          </if>
          <if test="photo != null" >
            #{photo,jdbcType=VARCHAR},
          </if>
        </trim>
      </insert>
    

    相关文章

      网友评论

          本文标题:mybatis sql语句前缀后缀设置

          本文链接:https://www.haomeiwen.com/subject/lbkyvttx.html