mybatis之<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>的含义

转自:http://blog.csdn.net/qq_33054511/article/details/70490046
 
<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>
prefix:在trim标签内sql语句加上前缀。
suffix:在trim标签内sql语句加上后缀。
suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除trim标签内sql语句多余的后缀","。
prefixOverrides:指定去除多余的前缀内容
2.下面是一个往购物车表中插入数据的mybatis语句
 
  1. <insert id="insert" parameterType="com.tortuousroad.groupon.cart.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.             <if test="dealId != null">  
  11.                 deal_id,  
  12.             </if>  
  13.             <if test="dealSkuId != null">  
  14.                 deal_sku_id,  
  15.             </if>  
  16.             <if test="count != null">  
  17.                 count,  
  18.             </if>  
  19.             <if test="createTime != null">  
  20.                 create_time,  
  21.             </if>  
  22.             <if test="updateTime != null">  
  23.                 update_time,  
  24.             </if>  
  25.         </trim>  
  26.         <trim prefix="values (" suffix=")" suffixOverrides=",">  
  27.             <if test="id != null">  
  28.                 #{id,jdbcType=BIGINT},  
  29.             </if>  
  30.             <if test="userId != null">  
  31.                 #{userId,jdbcType=BIGINT},  
  32.             </if>  
  33.             <if test="dealId != null">  
  34.                 #{dealId,jdbcType=BIGINT},  
  35.             </if>  
  36.             <if test="dealSkuId != null">  
  37.                 #{dealSkuId,jdbcType=BIGINT},  
  38.             </if>  
  39.             <if test="count != null">  
  40.                 #{count,jdbcType=INTEGER},  
  41.             </if>  
  42.             <if test="createTime != null">  
  43.                 #{createTime,jdbcType=TIMESTAMP},  
  44.             </if>  
  45.             <if test="updateTime != null">  
  46.                 #{updateTime,jdbcType=TIMESTAMP},  
  47.             </if>  
  48.         </trim>  
  49.     </insert>  
假设没有指定
  1. suffixOverrides=","  
执行的sql语句也许是这样的:insert into cart (id,user_id,deal_id,) values(1,2,1,);显然是错误的
指定之后语句就会变成insert into cart (id,user_id,deal_id) values(1,2,1);这样就将“,”去掉了。
前缀也是一个道理这里就不说了。
posted @   xh_Blog  阅读(2312)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示