[SpringBoot] 여러 행 UPDATE - MYBATIS 사용

·2023년 4월 26일
0

be

목록 보기
1/1

Spring boot, MYBATIS 를 이용한 여러 행 UPDATE

이 문서는 Spring boot와 MYBATIS를 이용하여 여러 행을 업데이트하는 방법을 안내합니다.

Spring Boot에서 MyBatis를 사용할 때, Service에서는 Mapper를 호출하여 데이터베이스에 접근합니다.

일반적으로 Service는 비즈니스 로직을 처리하는 레이어입니다. 이 레이어에서는 Mapper를 호출하여 데이터베이스에 접근합니다.

Mapper는 MyBatis에서 SQL 쿼리를 실행하는 객체입니다. Mapper를 작성하고, Service에서 Mapper를 호출하여 데이터베이스에 접근하는 방법은 아래와 같습니다.

  1. UserMapper 인터페이스 작성
@Mapper
public interface UserMapper {
    List<User> getUsers();
    void updateUser(User user);
    // 추가적인 메소드 작성 가능
}
  1. UserService 작성
@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public List<User> getUsers() {
        return userMapper.getUsers();
    }

    public void updateUser(User user) {
        userMapper.updateUser(user);
    }
    // 추가적인 메소드 작성 가능
}

UserService에서는 UserMapper@Autowired 어노테이션을 사용하여 자동으로 주입합니다. UserService에서는 UserMapper의 메소드를 호출하여 데이터베이스에 접근합니다.

위와 같이 ServiceMapper를 분리하여 작성하면, Service는 비즈니스 로직에 집중할 수 있습니다. 또한, Mapper는 SQL 쿼리를 작성하고 실행하는 역할을 수행합니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.

아래와 같이 UserMapper 인터페이스에 다음과 같은 메소드를 추가하여 여러 행을 업데이트할 수 있습니다.

@Mapper
public interface UserMapper {
    List<User> getUsers();
    void updateUser(User user);
    void updateUsers(List<User> users);
}

updateUsers() 메소드에서는 List<User> 타입의 파라미터를 받아 foreach 구문을 이용하여 여러 행을 업데이트할 수 있습니다.

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

    public void updateUsers(List<User> users) {
        userMapper.updateUsers(users);
    }
}

UserService에서는 updateUsers() 메소드를 호출하여 여러 행을 업데이트할 수 있습니다.

profile
왕이에요

0개의 댓글