๐™น๐šŠ๐šŸ๐šŠ

MyBatis ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์ตœ์ ํ™”: List ์‚ฝ์ž… ์‹œ ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐฉ๋ฒ• (Mapper)

ํ•ด๋ฒ„๋‹ˆ 2024. 7. 18. 20:55
๋ฐ˜์‘ํ˜•

 

 

 

1๏ธโƒฃ interface

public interface UserMapper {
    // List๋กœ ํ•œ ๋ฒˆ์— ๋„ฃ๊ธฐ
    void insertUsersList(@Param("users") List<User> users);
    
    // vo๋กœ ์—ฌ๋Ÿฌ๋ฒˆ ๋„ฃ๊ธฐ 
    void insertUser(User user);
}

 

 

 

2๏ธโƒฃ 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.example.mapper.UserMapper">
	<!-- Mapper ํ•œ ๋ฒˆ ํ˜ธ์ถœ -->
    <insert id="insertUsersList">
        INSERT INTO users (id, name, email)
        VALUES
        <foreach collection="users" item="user" separator=",">
            (#{user.id}, #{user.name}, #{user.email})
        </foreach>
    </insert>
    
    <!-- Mapper ์—ฌ๋Ÿฌ๋ฒˆ ํ˜ธ์ถœ -->
    <insert id="insertUser">
        INSERT INTO users (id, name, email)
        VALUES (#{id}, #{name}, #{email})
    </insert>
</mapper>

 

 

3๏ธโƒฃ service 

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

	// Mapper ํ•œ ๋ฒˆ ํ˜ธ์ถœ
    public void addUsers(List<User> users) {
        userMapper.insertUsersList(users);
    }
    
    // java for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ Mapper ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ
    public void addUsers(List<User> users) {
        for (User user : users) {
            userMapper.insertUser(user);
        }
    }
}

 

 

 

Mapper ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ vs. ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ foreach ์‚ฌ์šฉ

 

 

Mapper ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ

 

๐Ÿ‘๐Ÿป ์žฅ์  

 

- ๋‹จ์ˆœํ•œ ๊ตฌํ˜„

- ๊ฐœ๋ณ„ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฐœ๋ณ„ ์‹คํŒจ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ ์šฉ์ด

 

๐Ÿ‘Ž๐Ÿป ๋‹จ์ 

- ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ๋กœ ์ธํ•ด ์„ฑ๋Šฅ ์ €ํ•˜

- ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜ ์ฆ๊ฐ€

- ์ฝ”๋“œ ์ค‘๋ณต ์ฆ๊ฐ€

 

 

 

 

Mapper ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ foreach ์‚ฌ์šฉ

 

๐Ÿ‘๐Ÿป ์žฅ์ 

- ํ•œ ๋ฒˆ์˜ ๋„คํŠธ์›Œํฌ ํ˜ธ์ถœ๋กœ ์„ฑ๋Šฅ ์ตœ์ ํ™”

- ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํ•˜ ๊ฐ์†Œ

- ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™”

 

 

๐Ÿ‘Ž๐Ÿป ๋‹จ์ 

- ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ชจ๋“  ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฏ€๋กœ ์ผ๋ถ€ ์‹คํŒจ ์‹œ ์ „์ฒด ๋กค๋ฐฑ ํ•„์š”

- ๊ตฌํ˜„ ๋ณต์žก๋„ ์ฆ๊ฐ€ ๊ฐ€๋Šฅ

 

 

 

์ •๋ฆฌ

- ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์€ ๊ตฌํ˜„์ด ๋‹จ์ˆœํ•˜์ง€๋งŒ ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ์—์„œ ์†ํ•ด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

- ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜์—ฌ foreach๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ์ดˆ๊ธฐ ๊ตฌํ˜„์€ ๋ณต์žกํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์„ฑ๋Šฅ๊ณผ ํšจ์œจ์„ฑ์—์„œ ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•œ๋‹ค.

 

 

→ ๊ทธ๋ž˜์„œ ๋‚˜๋Š” list ์‚ฝ์ž…ํ•ด์•ผ ํ•  ๋•Œ๋Š”, mapper๋ฅผ ํ•œ ๋ฒˆ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์‚ฌ์šฉํ–ˆ๋‹ค. 

 

 

 

 

๋ฐ˜์‘ํ˜•