20.mybatis常用标签

mybatis中refid是什么意思

1、首先定义一个sql标签,一定要定义唯一id<sqlid="Base_Column_List" >name,age</sql>
2、然后通过id引用
<select id="selectAll">
select 
<include refid="Base_Column_List" />
    from student
</select>
这个<include refid="Base_Column_List" />会自动把上面的代码贴过来

即:<select id="selectAll">
select name,age
    from student
</select>
mybatis动态sql中foreach标签的使用

foreach标签主要用于构建in条件,他可以在sql中对集合进行迭代。如下:

<deleteid="deleteBatch"> 

deletefrom user where id in

<foreachcollection="array" item="id" index="index"open="(" close=")" separator=",">

#{id}

</foreach>

</delete>

  我们假如说参数为----  int[] ids = {1,2,3,4,5}  ----那么打印之后的SQL如下:

deleteform user where id in (1,2,3,4,5)

  释义:

collectioncollection属性的值有三个分别是listarraymap三种,分别对应的参数类型为:List、数组、map集合,我在上面传的参数为数组,所以值为array

item 表示在迭代过程中每一个元素的别名

index:表示在迭代过程中每次迭代到的位置(下标)

open :前缀

close:后缀

separator:分隔符,表示迭代时每个元素之间以什么分隔

我们通常可以将之用到批量删除、添加等操作中。

mybatis动态sql中的trim标签的使用

trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码:

1

select* from user 

<trimprefix="WHERE" prefixoverride="AND |OR">

<iftest="name != null and name.length()>0"> ANDname=#{name}</if>

<iftest="gender != null and gender.length()>0"> ANDgender=#{gender}</if>

</trim>

  假如说namegender的值都不为null的话打印的SQL为:select * from user where    name = 'xx' and gender = 'xx'

  在红色标记的地方是不存在第一个and的,上面两个属性的意思如下:

prefix:前缀      

prefixoverride:去掉第一个and或者是or

 

2

updateuser

<trimprefix="set" suffixoverride="," suffix=" where id =#{id} ">

<iftest="name != null and name.length()>0"> name=#{name} ,</if>

<iftest="gender != null and gender.length()>0"> gender=#{gender} , </if>

</trim>

  假如说namegender的值都不为null的话打印的SQL为:update user set name='xx' ,gender='xx'     whereid='x'

  在红色标记的地方不存在逗号,而且自动加了一个set前缀和where后缀,上面三个属性的意义如下,其中prefix意义如上:

suffixoverride:去掉最后一个逗号(也可以是其他的标记,就像是上面前缀中的and一样)

suffix:后缀

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值