Spring 프로젝트를 진행할 때 비즈니스 로직에서 mapper의 쿼리를 호출할 때 조회된 행의 개수가 필요한 경우가 있다. 이때 개수를 가져오는 방법에 대해 알아보자.
조회된 행의 개수 가져오는 방법
가장 간단한 방법은 다음과 같습니다.
<mapper namespace="com.example.UserMapper">
<!-- 사용자 테이블의 모든 데이터 개수를 조회하는 쿼리 -->
<select id="getUserCount" resultType="int">
SELECT COUNT(*) FROM users;
</select>
</mapper>
'SELECT COUNT( * ) ' 쿼리를 실행하여 조회된 데이터의 개수를 얻는 방법입니다. 이제 Mapper를 작성했으니 이를 호출하는 Java 코드를 작성해 보도록 하겠습니다.
// Java 코드에서 MyBatis 사용
public interface UserMapper {
int getUserCount();
}
// 호출 예시
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
int userCount = userMapper.getUserCount();
System.out.println("사용자 데이터 개수: " + userCount);
이러한 방식으로 필요한 데이터의 수를 Mapper로부터 받아올 수 있습니다. 하지만 이러한 방법 이외에도 조회된 데이터의 개수를 가져올 수 있는 방법이 있습니다. 바로 Mapper의 메서드를 활용하는 것입니다. List를 반환하는 Mapper의 메서드를 작성하고, Java에서는 반환되는 List의 크기로 데이터의 개수를 확인합니다. 방법은 다음과 같습니다.
public interface UserMapper {
List<User> getAllUsers();
}
위와 같이 List를 반환하는 Mapper의 메서드를 작성하였습니다. 이제 해당 메서드를 호출하는 Java 코드를 작성해 보도록 하겠습니다.
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
List<User> userList = userMapper.getAllUsers();
int userCount = userList.size();
System.out.println("사용자 데이터 개수: " + userCount);
위와 같은 방식으로 조회 결과를 리스트로 반환하여 Java에서 반환된 리스트의 크기를 구할 수 있습니다. 조회된 행의 개수를 반환하는 두 가지 방법을 말씀드렸습니다. 프로젝트의 특성과 요구사항에 맞게 사용하시면 될 것 같습니다.
감사합니다.
'WEB > Spring' 카테고리의 다른 글
[Spring]Initializr를 사용하여 간편하게 프로젝트 생성하기 (2) | 2023.08.10 |
---|---|
[Spring]MVC모델과 비교되는 WebFlux에 대해 알아보자 (1) | 2023.08.09 |
웹 애플리케이션의 보안의 기본, Spring Security 알아보기 (42) | 2023.07.26 |
[Spring]Feign Client를 활용한 마이크로서비스 통신 방법 (2) | 2023.07.22 |
[Spring]기본적인 어노테이션(Annotation)을 알아보자 (2) | 2023.07.21 |