자바에서 **RowMapper
**는 JDBC(Java Database Connectivity)를 통해 데이터베이스 결과 집합을 객체로 매핑하는 데 사용되는 인터페이스입니다. **RowMapper
**는 주로 **JdbcTemplate
**과 함께 사용되며, 데이터베이스에서 조회한 각 행(row)의 데이터를 객체로 변환하는 역할을 담당합니다.
RowMapper
인터페이스는 **mapRow()
**라는 단일 메서드를 정의하고 있으며, 이 메서드는 각 행의 데이터를 입력으로 받아서 해당 데이터를 기반으로 객체를 생성하고 반환합니다. mapRow()
메서드는 각 행을 처리하고 해당 행의 데이터를 객체로 변환하는 로직을 개발자가 구현해야 합니다.
일반적으로 **RowMapper
**는 제네릭을 사용하여 변환하고자 하는 객체 타입을 명시합니다. 예를 들어, **RowMapper<User>
**는 User
객체로 각 행의 데이터를 매핑하는 데 사용됩니다.
다음은 **RowMapper
**의 간단한 예시입니다:
public class UserRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getLong("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
// 추가적인 매핑 로직 수행
return user;
}
}
위의 예시에서 **UserRowMapper
**는 RowMapper<User>
인터페이스를 구현한 클래스입니다. mapRow()
메서드에서는 ResultSet
객체를 통해 각 열(column)의 데이터를 가져와서 User
객체에 매핑합니다. 그리고 해당 User
객체를 반환합니다.
**RowMapper
**를 사용하면 JDBC를 통해 데이터베이스 결과를 객체로 변환할 수 있습니다. 이를 통해 복잡한 데이터베이스 쿼리 결과를 애플리케이션에서 더 쉽게 처리하고 활용할 수 있습니다.