Mybatis trim标签
2024-10-10 20:37:17
trim代替where/set标签
trim 是更灵活用来去处多余关键字的标签,它可以用来实现 where 和 set 的效果。
<!-- 使用 if/trim 代替 where(判断参数) - 将 User 类不为空的属性作为 where 条件 -->
<select id="getUsertList_if_trim" resultMap="resultMap_User">
SELECT *
FROM user u
<trim prefix="WHERE" prefixOverrides="AND|OR">
<if test="username !=null ">
u.username LIKE CONCAT(CONCAT('%', #{username, jdbcType=VARCHAR}),'%')
</if>
<if test="sex != null and sex != '' ">
AND u.sex = #{sex, jdbcType=INTEGER}
</if>
<if test="birthday != null ">
AND u.birthday = #{birthday, jdbcType=DATE}
</if>
</trim>
</select>
trim 代替 set
<!-- if/trim代替set(判断参数) - 将 User 类不为空的属性更新 -->
<update id="updateUser_if_trim" parameterType="com.yiibai.pojo.User">
UPDATE user
<trim prefix="SET" suffixOverrides=",">
<if test="username != null and username != '' ">
username = #{username},
</if>
<if test="sex != null and sex != '' ">
sex = #{sex},
</if>
<if test="birthday != null ">
birthday = #{birthday},
</if> </trim>
WHERE user_id = #{user_id}
</update>
trim (对包含的内容加上 prefix,或者 suffix 等,前缀,后缀)
<select id="dynamicTrimTest" parameterType="Blog" resultType="Blog">
select * from t_blog
<trim prefix="where" prefixOverrides="and |or">
<if test="title != null">
title = #{title}
</if>
<if test="content != null">
and content = #{content}
</if>
<if test="owner != null">
or owner = #{owner}
</if>
</trim>
</select>
trim 元素的主要功能是可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是 prefix 和 suffix;可以把包含内容的首部某些内容覆盖,即忽略,也可以把尾部的某些内容覆盖,对应的属性是 prefixOverrides 和 suffixOverrides;正因为 trim 有这样的功能,所以我们也可以非常简单的利用 trim 来代替 where 元素的功能。
最新文章
- 使用css3的动画模拟太阳系行星公转
- POJ3422 Kaka&#39;s Matrix Travels[费用流]
- JavaScript 中对内存的一些了解
- windows服务器的DDOS防御,
- Angular Module声明和获取重载
- Eclipse 反编译插件JadClipse安装
- RabbitMQ官方中文入门教程(PHP版) 第一部分:Hello World
- Linux PHP增加JSON支持及如何使用JSON
- linux 安装oracle 11g
- webdriver(python)学习笔记二
- Python 学习之中的一个:在Mac OS X下基于Sublime Text搭建开发平台包括numpy,scipy
- 阿里P8分享:关于做事方式与做事态度
- 射频识别技术漫谈(22)——RC系列射频芯片的寄存器操作
- C#如何在panl控件上添加Form窗体
- 让.NET程序快速释放内存的办法
- python函数(4):递归函数及二分查找算法
- PTA第四次作业
- background-attachment属性
- 函数调用的区别:_cdecl以及_stdcall
- Linux基础命令---chsh