*在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);这样就将“,”去掉了。