MyBatis 动态SQL

目录

1,if标签: 

2,where标签:

3,choose(when、otherwise)标签 

4,foreach标签

5,set标签 

6,trim标签


 

 一,动态SQL

MyBatis通过标签的配合使用,可实现如下功能

        语句的动态拼接

        前后缀格式处理

       复杂参数处理

1,if标签:

动态SQL技术中最常用的标签之一

类似于Java中的if语句

语法:

<if  test = "条件判断,返回true或false" >

  SQL语句

</if>

2,where标签:

简化SQL 语句中 where 子句处理
智能处理and、or等关键字
语法:
<where>
	<if test="条件判断">
		SQL语句
	</if>
	…
</where>

3,choose(when、otherwise)标签

是一个组合标签,通常与 when otherwise 标签配合使用
类似于 Java switch 语句
语法:
<choose>
	<when test="条件判断,返回true或false">
	</when>
	<when test="条件判断,返回true或false">
	</when>
	...
	<otherwise>
	</otherwise>
</choose>

4,foreach标签

迭代一个集合,通常用于 in 条件
语法:
<foreach collection = "参数名称"   
               item = "元素别名" 
               open = "("           //起始位置的拼接字符
               separator = ","      //元素之间的连接符
               close = ")"          //结束位置的拼接字符
               index = "当前元素位置下标" >
	#{元素别名}
</foreach>

5,set标签

简化 SQL 语句中 set 子句处理
智能 忽略更新语句尾部多出来的逗号
<set>
	<if test="条件判断">
		SQL语句
	</if>
	…
</set>

6,trim标签

动态地为 SQL 语句添加前后缀
智能忽略标签前后多余的 and or 或逗号等字符
语法:
<trim prefix = "前缀" 
	  suffix = "后缀" 
	  prefixOverrides = "忽略前缀" 
	  suffixOverrides = "忽略后缀" >
	…
</trim>

示例:

<select id="selectList" resultType="SysUser">
	select * from t_sys_user
		<trim prefix="where" prefixOverrides="and|or">
			<if test="roleId != null">
				and roleId = #{roleId}
			</if>
			…
		</trim>
</select>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值