MyBatis XML去除多余AND|OR前缀或逗号等后缀的操作
时间:2022-03-17 10:55:05|栏目:JAVA代码|点击: 次
1.通过trim格式化标记set或where功能
2.对于set自动删除最后一个“,”,对于where自动删除最后一个“and|or”
使用示例如下:
1、
select * from user
<trim prefix="WHERE" prefixOverride="AND |OR">
<if test="userName != null and userName.length()>0"> AND user_name=#{userName}</if>
<if test="loginName != null and loginName.length()>0"> AND login_name=#{loginName}</if>
</trim>
如果userName 为空则最终SQL为:
select * from user where login_name = 'xx'
prefix:前缀
prefixOverride:去掉第一个and或者是or
2、
update user
<trim prefix="set" suffixOverride="," suffix=" where user_id = #{userId} ">
<if test="userName != null and userName.length()>0"> user_name=#{userName} , </if>
<if test="loginName != null and loginName.length()>0"> login_name=#{loginName} , </if>
</trim>
如果userName 为空则最终SQL为:
update user set login_name='xx' where user_id='xx'
suffixOverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)
suffix:后缀
补充:mybatis去除多余的and或者or
啥也不多说了,大家还是直接看代码吧~
<select id="selectBySelective" resultType="xxx.UserInfo">
select
<include refid="Base_Column_List" />
from uc_user
<trim prefix="WHERE (" suffix=")" prefixOverrides="AND |OR ">
<if test="userName != null" >
user_name = #{userName}
</if>
<if test="email != null" >
or email = #{email}
</if>
<if test="phone != null" >
or phone = #{phone}
</if>
<if test="weiboId != null" >
or weibo_id = #{weiboId}
</if>
<if test="wxId != null" >
or wx_id = #{wxId}
</if>
<if test="qqId != null" >
or qq_id = #{qqId}
</if>
</trim>
and status = 1
</select>
上一篇:SpringMVC 拦截器不拦截静态资源的三种处理方式方法
栏 目:JAVA代码
本文标题:MyBatis XML去除多余AND|OR前缀或逗号等后缀的操作
本文地址:http://www.codeinn.net/misctech/196479.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




