mybatis的<trim>标签

  mybatis中<trim>用于格式化sql语句,可以帮助完成select,update,insert,delete语句的格式化操作,trim元素的主要功能(主要内部标签):参见下图

 

 

 prefix:包含的内容的前缀;

suffix:与prefix对应,包含内容的后缀

prefixOverrides:可以设定第一个出现的某个字符或者内容被忽略

sufixOverrides:设定最后的某个字符或者内容被忽略

“INSERT”:

insert into essay
        <trim prefix="(" suffix=")" suffixOverrides=","> 
            <if test="time!= null">
                time,
            </if>
            <if test="authorname!= null">
                authorname,
            </if>
            <if test="content!= null">
                content,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="time != null">
                #{time,jdbcType=TIMESTAMP},
            </if>
            <if test="authorname != null">
                #{authorname,jdbcType=VARCHAR},
            </if>
            <if test="content != null">
                #{content,jdbcType=VARCHAR},
            </if>
        </trim>

“SELECT”:

select t.username,t.age,t.gender
from user
<trim prefix="where" prefixoverride="and | or">
  <if test="name!=null" >and t.name=#{name}</if>
  <if test="institution_id!=null">and t.institution_id=#{insid}</if>
  <if test="gender!=null">and t.gender=#{gender}</if>
</trim>

"UPDATE":

这个suffix可能有点多余,可以直接接在后面

update user

<trim prefix="set" suffixoverride="," sufix="where id=#{id}">
  <if test=name!=null">name=#{name},</if>
  <if test="gender!=null">gender="#{gender}",</if>
</trim>

“DELETE”

这样的delete不建议写,就算这样写也需要后端传过来的值有能够确定的参数,否则最后拼接出来的sql可能起到意想不到的效果。。

delete from user
<trim prefix="where" prefixoverride="and | or">
  <if test="name!=null">and name=#{name}</if>
  <if test="age!=null">and age=#{age}</if>
  <if test="email!=null">and email=#{email}</if>
</trim>

 

posted @ 2019-10-30 15:19  落楝花  阅读(881)  评论(0编辑  收藏  举报

乘兴而来