[mybatis] <foreach> tag usage

Use <foreach>the tag to traverse the iterative collection and array elements, and execute add and delete commands in batches.

  • mapper
package com.atguigu.mybatis.mapper;
import org.apache.ibatis.annotations.Param;
public interface DynamicSQLMapper {
    
    
    /*
     * 通过数组实现批量删除
     * */
    int deleteMoreByArray(@Param("eids") Integer[] eids);
}

-mapper.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.mapper.DynamicSQLMapper">
   <!--
    通过数组实现批量删除
    int deleteMoreByArray(Integer[] eids);
    -->

    <delete id="deleteMoreByArray">
        delete from users where id in
        <foreach collection="eids" item="eid" separator="," open="(" close=")">
            #{eid}
        </foreach>

    </delete>
</mapper>

  • test
package com.atguigu.mybatis.test;

import com.atguigu.mybatis.mapper.DynamicSQLMapper;
//import com.atguigu.mybatis.mapper.UserMapper;
//import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;

public class DynamicSQLMapperTest {
    
    
    @Test
    public void testDeleMoreByArray() throws IOException {
    
    
        InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        SqlSessionFactory sqlSessionFactory= sqlSessionFactoryBuilder.build(is);
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        DynamicSQLMapper mapper = sqlSession.getMapper(DynamicSQLMapper.class);
        int result = mapper.deleteMoreByArray(new Integer[]{
    
    6,7,8});
        System.out.println(result);

    }
}
  • There are 7 records in the original database, and
    insert image description here
    5 records remain after deletion.
    insert image description here

Guess you like

Origin blog.csdn.net/qq_45486709/article/details/123507812