MyBatis之XML配置文件(二)

 六、动态SQL拼接

MyBatis提供了if 、foreach、choose等标签动态拼接sql语句,下面介绍这些标签的使用

        1、if标签

       if标签通常用于WHERE语句中,通过判断参数值决定是否使用某个查询条件。

<select id="selectStudentListLikeName" 
        parameterType="org.weiz.example01.Student"
        resultMap="BaseResultMap">

   select *  from student
   <if test="name!=null and name!='' ">
    where name like CONCAT(CONCAT('%',#{name}),'%')
   </if>
</select>

       上面示例中,使用if标签进行判断,如果传入的参数值为null或空字符串,就不进行条件判断。

     2、foreach标签

      此标签主要用于构建in条件,可以在sql标签中对集合进行迭代,通常可以将其用到批量删除、添加等操作中,使用方法如下:

<delete  id="deleteBatch">
    delete from student  where id in
  <foreach  collection="array" item="id"  index="index' open="("  close=")" separator=",">
    #{id}
  </foreach>
</delete>

在上面的示例中,通过foreach标签将传入的id数组拼接成in(1,2,3),实现批量删除的功能。

foreach标签包含如下几个属性:
•  collection:有3个值,分别是list、array和map,分别对应Java中的类型为:List集合、Array和Map三种数据类型。示例中传的参数为数组,所以值为array。
•  item:表示在迭代过程中每一个元素的别名。
•  index:表示在迭代过程中每次迭代到的位置(下标)。
•  open:前缀。
•  close:后缀。
•  separator:分隔符,表示迭代时每个元素之间以什么分隔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值