[ Java /JDBC ] RowMapper / ResultSetExtractor의 차이점
2024. 1. 28. 13:42ㆍ· LANGUAGE/└ Java
RowMapper와 ResultSetExtractor는 스프링 프레임워크에서 JDBC의 결과를 매핑하는 데 사용되는 인터페이스이다.
RowMapper : 목록용 도구
· 각 행(row)을 객체로 매핑하는 데 사용된다.
· 각 행의 데이터를 객체의 필드에 매핑하여 리스트 혹은 단일 객체로 반환
· 주로 한 행의 데이터를 한 객체에 매핑할 때 사용
ResultSetExtractor : 상세용 도구
· RowMapper와는 달리 결과 집합 전체를 처리하며, 각 행의 데이터를 개별 객체로 매핑하는 방식이 아닙니다.
· 전체 결과 집합을 처리하고 나면 마지막에 원하는 결과를 반환
· 주로 복잡한 매핑 로직이 필요하거나 여러 행을 처리하는데 사용
[RowMapper 사용 예]
public class EmployeeMapper implements RowMapper<Employee> {
@Override
public Employee mapRow(ResultSet resultSet, int rowNum) throws SQLException {
// Employee 객체 생성
Employee employee = new Employee();
// 필드에 ResultSet에서 추출한 데이터 매핑
employee.setId(resultSet.getInt("id"));
employee.setName(resultSet.getString("name"));
employee.setDepartment(resultSet.getString("department"));
return employee;
}
}
[ResultSetExtractor 사용 예]
public class EmployeeExtractor implements ResultSetExtractor<List<Employee>> {
@Override
public List<Employee> extractData(ResultSet resultSet) throws SQLException, DataAccessException {
// Employee 객체 리스트 생성
List<Employee> employees = new ArrayList<>();
// ResultSet에서 데이터 추출하여 Employee 객체로 매핑 후 리스트에 추가
while (resultSet.next()) {
Employee employee = new Employee();
employee.setId(resultSet.getInt("id"));
employee.setName(resultSet.getString("name"));
employee.setDepartment(resultSet.getString("department"));
employees.add(employee);
}
return employees;
}
}
개인 공부 기록용입니다:)
728x90
'· LANGUAGE > └ Java' 카테고리의 다른 글
[ Java / Spring ] @RequestParam (0) | 2024.02.07 |
---|---|
[ Java ] DTO / DAO 이해 (0) | 2024.01.29 |
[ Java ] 삼항연산자(Ternary Operator) (0) | 2024.01.27 |
[ Java / Database ] DTO 이해 실습 (0) | 2024.01.26 |
[ Java ] Collection - List (0) | 2024.01.25 |