天天看点

mybatis中的<trim prefix=

1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>

prefix:在trim标签内sql语句加上前缀。

suffix:在trim标签内sql语句加上后缀。

suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。

prefixOverrides:指定去除多余的前缀内容

<insert id="insertSelective" parameterType="com.hph.entity.TeaEval">
    insert into teaeval
    <trim prefix="(" suffix=")" suffixOverrides=",">
      <if test="id != null">
        Id,
      </if>
      <if test="classname != null">
        className,
      </if>
      <if test="coursename != null">
        courseName,
      </if>
      <if test="teachername != null">
        teacherName,
      </if>
      <if test="teacherscore != null">
        teacherScore,
      </if>
    </trim>
    <trim prefix="values (" suffix=")" suffixOverrides=",">
      <if test="id != null">
        #{id,jdbcType=INTEGER},
      </if>
      <if test="classname != null">
        #{classname,jdbcType=VARCHAR},
      </if>
      <if test="coursename != null">
        #{coursename,jdbcType=VARCHAR},
      </if>
      <if test="teachername != null">
        #{teachername,jdbcType=VARCHAR},
      </if>
      <if test="teacherscore != null">
        #{teacherscore,jdbcType=INTEGER},
      </if>
    </trim>
  </insert>      

执行的sql语句也许是这样的:insert into teaeval(id,classname,coursename,) values(1,软件2班,数据结构,);显然是错误的

指定之后语句就会变成insert into teaeval(

id,classname,coursename) values(1,软件2班,数据结构);这样就将“,”去掉了。

前缀也是一个道理这里就不说了。