mybatis中的trim标签的使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中的trim标签的使用相关的知识,希望对你有一定的参考价值。
参考技术A <trim> 元素的主要作用是可以在自己添加的内容前添加某些前缀,内容之后添加某些后缀,对应的元素为:前缀 prefix 后缀 suffix.prefixOverrides 把某些首部的元素进行覆盖,suffixOverrides 把某些尾部的元素进行覆盖
(1)使用案例 替代where
类似于sql: select * from users where name = ? and address =?
(2)替代set
打印sql: update user set name="xxx" ,gender="yyy" where id ="w"
suffixoverride="," 意思是重写最后一个逗号 suffix意思是后缀
(3)插入insert
执行sql: insert into sys_user_role(id,user_id,role_id) values(id,userId,roleId);
Mybatis中运用小技巧 trim标签的使用
作者:death05的博客
推荐:路在脚下
trim元素的主要功能是可以在自己包含的内容钱加上某些前缀,也可以在其后加上某写后缀,与之对应的属性是prefix和suffix;
可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是prefixOverrides和suffixOverrides。以下举例:
1、代码为:
select * from user <trim prefix="WHERE" prefixoverride="AND |OR"> <if test="name != null and name.length()>0"> AND name=# {name}</if> <if test="gender != null and gender.length()>0"> AND gender=# {gender}</if> </trim>
假如说name和gender的值都不为null的话,打印的SQL为:
select * from user where name = ‘xx‘ and gender = ‘xx‘
where后不存在and,这是因为prefixoverride="AND |OR"
代表去掉第一个and或者是or。
2、代码为:
update user <trim prefix="set" suffixoverride="," suffix=" where id = #{id} "> <if test="name != null and name.length()>0"> name=#{name} , </if> <if test="gender != null and gender.length()>0"> AND gender=# {gender} , </if> </trim>
假如说name和gender的值都不为null的话,打印的SQL为:
update user set name=‘xx‘ , gender=‘xx‘ where id=‘x‘
可以参考第一个例子理解。
3、代码为:
<insert id="save" parameterType="NoticeEntity"> INSERT INTO S_NOTICE <trim prefix="(" suffix=")" suffixOverrides=","> ID, <if test="title != null">TITLE,</if> <if test="content != null">CONTENT,</if> <if test="noticeStatus != null">NOTICE_STATUS,</if> <if test="createdBy != null">CREATED_BY,</if> CREATED_TS, <if test="lastUpdBy != null">LAST_UPD_BY,</if> LAST_UPD_TS, </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> SYS_GUID(), <if test="title != null">#{title,jdbcType=VARCHAR},</if> <if test="content != null">#{content,jdbcType=VARCHAR},</if> <if test="noticeStatus != null">#{noticeStatus,jdbcType=VARCHAR},</if> <if test="createdBy != null">#{createdBy,jdbcType=VARCHAR},</if> systimestamp, <if test="lastUpdBy != null">#{lastUpdBy,jdbcType=VARCHAR},</if> systimestamp, </trim> </insert>
大家可以自行理解一下。
以上是关于mybatis中的trim标签的使用的主要内容,如果未能解决你的问题,请参考以下文章