mybatis循环生成前后缀:mapper.xml的<trim></trim>

*mapper.xml中<trim prefix="(" suffix=")" suffixOverrides="," prefixOverrides=""></trim>

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

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

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

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

 1   <insert id="insert" parameterType="com.xxx.entity.Cart">  
 2         insert into cart  
 3         <trim prefix="(" suffix=")" suffixOverrides=",">  
 4             <if test="id != null">  
 5                 id,  
 6             </if>  
 7             <if test="userId != null">  
 8                 user_id,  
 9             </if>  
10         </trim>  
11         <trim prefix="values (" suffix=")" suffixOverrides=",">  
12             <if test="id != null">  
13                 #{id,jdbcType=BIGINT},  
14             </if>  
15             <if test="userId != null">  
16                 #{userId,jdbcType=BIGINT},  
17             </if>  
18         </trim>  
19   </insert>  

假设没有指定suffixOverrides=","  

执行的sql语句也许是这样的:insert into cart (id,user_id,) values(1,2,);显然是错误的

指定之后语句就会变成insert into cart (id,user_id) values(1,2);这样就将“,”去掉了。

原文地址:https://www.cnblogs.com/locker777/p/10084017.html