MyBatis标签基本用法

1、choose标签用法

实现if....else的逻辑就要用

<choose>
    <when>
    </when>
    <otherwise>
    </othorwise
</choose>

2、where标签用法

<select id ="select" resultType="">
select * from user 
<where>
<if test="username != null and username !=''">
and username like concat('%', #{username}, '%')
</if>
<if test="email != null and email !=''">
 and email = #{email}
</if>
</where>
</select>

当fi条件都不满足的时候,where元素中没有内容,所以在SQL中不会出现where,也就不存在SQL错误的问题。如果if条件满足,where元素的内容就是以and开头的条件,where会自动去掉开头的and,这也能保证where条件正确。这种SQL更干净,不会在任何情况下都有where 1= 1的情况。

3、foreach 用法

SQL语句中有时会有IN关键字,例如id in (1, 2, 3),但是写法不能防止SQL注入,想避免SQL注入就需要用#{}的方式,这时就要配合使用foreach标签来满足需求。

foreach 标签可以对数组,Map或实现了Iterable接口(如List,set)的对象进行遍历。数组在处理时会转换为List对象,因此foreach遍历的对象可以分为两大类:Iterable类型和Map类型。

<select>
。。。。where id in
<foreach collection="list" open="(" close=")" separator="," item="id" index="i"
   #{id}
</foreach>
</select>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值