欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis批量删除

程序员文章站 2022-06-07 13:20:33
...

一、Mybatis批量删除重点foreach

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 :

item, 表示集合中每一个元素进行迭代时的别名

index,指 定一个名字,用于表示在迭代过程中,每次迭代到的位置

collection,在不同情况下,该属性的值是不一样的

open,表示该语句以什么开始

separator,表示在每次进行迭代之间以什么符号作为分隔符

close,表示以什么结束

在使用foreach的时候最关键的也是最容易出错的就是collection属性,在不同情况下,该属性的值是不一样的,

主要有3种情况:

(1)如果传入单参数且参数类型是List的时候,collection属性值为list .

(2)如果传入单参数且参数类型是array数组的时候,collection的属性值为array 

(3)如果传入多个参数是的时候,我们就需要把它们封装成一个Map 而 collection的值是传入的参数Map的key

二、第一种:Mybatis批量删除自定义方法 

Mapper.xml

<!-- 批量删除 -->

  <delete id="deleteByIds" parameterType="java.lang.String" >

       DELETE FROM tb_menu WHERE id IN

       <foreach collection="array" item="id" open="(" close=")" separator=",">

           #{id}

       </foreach>

   </delete>

Mapper.java/ Service.java

void deleteByIds(String[] ids);

ServiceImpl.java


@Override

    public void delByIds(String[] ids) {

       // TODO Auto-generated method stub

        menuMapper.deleteByIds(ids);

    }

Controller.java


@RequestMapping(value="/delByIds", method=RequestMethod.POST)

    @ResponseBody

    public JSONObject delByIds(@RequestParam("ids[]") String[] ids) {

       System.out.println("delByIds "+ids.toString());

       menuService.delByIds(ids);

        JSONObject json = new JSONObject();

        json.put("code", 0);

        return json;

    }

三、第二种:Mybatis自带的方法

Mybatis自带的一种方法,这种批量删除的id是以集合List传递


public void delByIds(List ids) {

    // TODO Auto-generated method stub

    TbMenuExample example = new TbMenuExample ();

    Criteria criteria = example.createCriteria();

    criteria.andIdsIn(ids);

    menuMapper.deleteByExample(example); //用这个方法

}

 

相关标签: foreach

上一篇: gulp总结

下一篇: Java foreach原理