[mybatis] <foreach> タグの使い方

<foreach>タグを使用して反復コレクションと配列要素をトラバースし、バッチで追加および削除コマンドを実行します。

  • 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);

    }
}
  • 元のデータベースには 7 つのレコードがあり、
    ここに画像の説明を挿入
    削除後に 5 つのレコードが残ります。
    ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_45486709/article/details/123507812