首页 > 其他分享 >mybatis动态标签——foreach批量添加和删除

mybatis动态标签——foreach批量添加和删除

时间:2023-03-03 23:00:21浏览次数:33  
标签:mapper 批量 Emp 标签 EmpMapper emp mybatis null foreach

<!--
    【foreach标签】
     collection:设置要循环的数组或集合
     item:用一个字符串表示数组或集合中的每一个数据
     separator:设置每次循环的数据之间的分隔符
     open:循环的所有内容以什么开始
     close:循环的所有内容以什么结束
-->

 

mapper接口

public interface EmpMapper {

    int batchAddEmps(@Param("emps") List<Emp> emps);

    int batchDelEmps(@Param("empIds") Integer[] empIds);
}

 

mapper.xml-批量添加

    <insert id="batchAddEmps">
        insert into t_emp values
        <foreach collection="emps" item="emp" separator=",">
            (null,#{emp.empName},#{emp.age},#{emp.gender},null)
        </foreach>
    </insert>

批量添加测试代码:

@Test
    public void testAddEmps(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        Emp emp1 = new Emp(null,"小明1",20,"男");
        Emp emp2 = new Emp(null,"小明2",21,"男");
        Emp emp3 = new Emp(null,"小明3",22,"男");
        List<Emp> list = Arrays.asList(emp1, emp2, emp3);
        int res = mapper.batchAddEmps(list);
        System.out.println(res);
    }

 

 

 

mapper.xml-批量删除(方法一)

   <delete id="batchDelEmps">
        delete from t_emp where emp_id in
        (
        <foreach collection="empIds" item="id" separator=",">
            #{id}
        </foreach>
        )
    </delete>

测试代码:

@Test
    public void testDelEmps(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        Integer[] ids = new Integer[]{5,6,7};

        int res = mapper.batchDelEmps(ids);
        System.out.println(res);
    }

 

 

 

mapper.xml-批量删除(方法二)

<delete id="batchDelEmps">
      
        delete from t_emp where
        <foreach collection="empIds" item="id" separator="or">
            emp_id = ${id}
        </foreach>

 </delete>

 

标签:mapper,批量,Emp,标签,EmpMapper,emp,mybatis,null,foreach
From: https://www.cnblogs.com/ixtao/p/17177302.html

相关文章

  • mybatis动态标签——choose、when、otherwise
    <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><m......
  • mybatis动态标签——trim
    <?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><m......
  • mybatis动态标签——where、if
    mapper接口publicinterfaceEmpMapper{List<Emp>getEmp(Empemp);}mapper.xml<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//myb......
  • EasyCode mybatis-plus模板 &Live tmpl
    Mapper##导入宏定义$!{define.vm}##设置表后缀(宏定义)#setTableSuffix("Mapper")##保存文件(宏定义)#save("/mapper","Mapper.java")##包路径(宏定义)#setPackageS......
  • 易优cms api接口中 apiAdv广告列表标签使用方法
    【基础用法】名称:apiAdv 功能:获取广告列表内容。语法:  参数:pid=''广告位置IDlimit='起始ID,记录数'(起始ID从0开始)表示限定的记录范围(如:limit='1,2'表示从ID为1的记录......
  • 易优cms的开发接口apiChannel 获取栏目列表标签使用方法
    [基础用法]名称:apiChannel功能:通常用于网站导航以获取站点栏目信息,方便网站会员分类浏览整站信息语法: 参数:channelid='频道id',在文档列表页使用时可以此参数可以不用拼接u......
  • 易优cms apiFlink 友情链接标签介绍
    【基础用法】名称:apiFlink功能:用于获取友情链接列表。语法: 参数:type=''链接类型,text为文字链接,image为图片链接,all为全部链接groupid=''链接分组ID,没有该属性系统调用默......
  • 专业问大家置顶,专业删除评价坏标签
    专业问大家置顶,专业删除评价坏标签最近做了很久的淘宝,了解到了居然还有这种技术,很神奇,于是从程序员的思维来了解淘宝的程序员的思维,发现了一些好玩的东西。换位思考如果......
  • java-mybatis
    1、添加依赖<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><ver......
  • springboot整合mybatis
    1,引入依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version><scope>runtime</scope></depend......