이 문서는 Spring boot와 MYBATIS를 이용하여 여러 행을 업데이트하는 방법을 안내합니다.
Spring Boot에서 MyBatis를 사용할 때, Service에서는 Mapper를 호출하여 데이터베이스에 접근합니다.
일반적으로 Service는 비즈니스 로직을 처리하는 레이어입니다. 이 레이어에서는 Mapper를 호출하여 데이터베이스에 접근합니다.
Mapper는 MyBatis에서 SQL 쿼리를 실행하는 객체입니다. Mapper를 작성하고, Service에서 Mapper를 호출하여 데이터베이스에 접근하는 방법은 아래와 같습니다.
UserMapper 인터페이스 작성@Mapper
public interface UserMapper {
List<User> getUsers();
void updateUser(User user);
// 추가적인 메소드 작성 가능
}
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의 메소드를 호출하여 데이터베이스에 접근합니다.
위와 같이 Service와 Mapper를 분리하여 작성하면, 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() 메소드를 호출하여 여러 행을 업데이트할 수 있습니다.